Мне интересно, как лучше всего (читай: быстрее) найти запись в наборе результатов оператора Tquery SQL.
До сих пор я использую TQuery.Locate, и если я прав, то это единственный оператор, который можно использовать для поиска в наборе результатов. Итак, как мы можем оптимизировать это?
У меня есть несколько идей, но у меня еще не было времени сравнить их все на больших наборах данных:
Допустим, у нас есть таблица со следующими полями:
Create Table aTable (
ID int,
Name1 varchar(50),
Name2 varchar(50));
И следующий запрос:
SELECT ID, Name1, Name2 from aTable
Мы хотим найти запись по ее идентификатору в результирующем наборе
- Будет ли локализация быстрее, если aTable имеет индекс по идентификатору?
- Будет ли поиск быстрее, если я добавлю «Order By ID» в оператор SQL?
Есть идеи по этому поводу?
[Редактировать] Чтобы пояснить использование этого: Запрос выполняется Reportavder Dataview, а затем становится доступным через линию данных (которая является TQuery.Dataset). В пользовательском отчете мне нужно пройти конвейер на основе некоторого идентификатора более высокого уровня. Так что НЕ использование запроса здесь не применимо. Мне просто интересно, ускорит ли что-нибудь из моих предложений выше.