ADO Search Performance - PullRequest
       9

ADO Search Performance

0 голосов
/ 26 июля 2011

Поскольку я не знаком с ADO под открытым небом, мне было интересно, какой из двух методов поиска записи обычно дает более быстрые результаты с использованием VB6.

  1. Используйте оператор «выбор», используя «где» в качестве квалификатора. Если счетчик записей равен нулю, запись не найдена.

  2. Выберите все записи, повторяющиеся в записях с помощью курсора на стороне клиента, пока запись не будет найдена или не найдена вовсе

Набор записей находится в диапазоне 10000 записей и будет расти. Кроме того, я открыт для всего, что приведет к сокращению времени поиска, кроме того, что было упомянуто.

Ответы [ 2 ]

3 голосов
/ 26 июля 2011
SELECT count(*) FROM foo WHERE some_column='some value'

Если результат больше 0, в базе данных была найдена запись, удовлетворяющая вашему условию.Маловероятно, что вы получили бы быстрее, чем это.Правильные индексы для столбцов, которые вы используете в предложении WHERE, могут значительно повысить производительность.

1 голос
/ 26 июля 2011

В каждом случае, о котором я могу подумать, выбор с помощью предложения where выполняется быстрее.

Даже в ситуациях, когда клиентский код будет перебирать всю базу данных (например, файловые базы данных, такие как Access), вы будете оптимизировать код, написанный на c или c ++, делая выбор (в драйвере базы данных).) Это всегда быстрее, чем VB6.

Для ядер СУБД (SQL, MySQL и т. Д.) Увеличение производительности может быть еще более значительным.Используя условие where, вы ограничиваете объем данных, которые должны передаваться по сети, что значительно улучшает отклик.

Некоторые дополнительные советы по повышению производительности:

  • Выберите только те поля, которые выwant.
  • Создание индексов для часто используемых полей
  • Посмотрите, какой набор записей вы возвращаете.Используйте курсоры Forward-only, если вы просто возвращаете данные из базы данных.

Наконец, я был шокирован производительностью базы данных VB.NET, которая в несколько раз превышала скорость самого быстрого кода VB6.

...