Самый быстрый способ найти запись в наборе результатов TQuery

Мне интересно, какой лучший (читай: самый быстрый) способ - найти запись в наборе результатов Оператор SQL Tquery.

До сих пор я использовал TQuery.Locate, и, если я прав, это единственный оператор, который можно использовать для поиска в наборе результатов. Итак, как мы можем это оптимизировать?

У меня есть несколько идей, но еще не было времени сравнить их все на больших наборах данных:

Допустим, у нас есть таблица со следующими полями:

Create Table aTable (
 ID int, 
 Name1 varchar(50), 
 Name2 varchar(50));

И следующий запрос:

SELECT ID, Name1, Name2 from aTable

Мы хотим найти запись по ее идентификатору в результирующем наборе

  • Будет ли локализация быстрее, если у aTable есть индекс по идентификатору?
  • Будет ли локализация быстрее, если я добавлю «Упорядочить по ID "к оператору SQL?

Есть идеи по этому поводу?

[Edit] Чтобы прояснить использование этого: Запрос выполняется построителем отчетов Dataview, а затем становится доступным через цепочку данных (которая является TQuery.Dataset). В настраиваемом отчете мне нужно пройти конвейер на основе идентификатора более высокого уровня. Поэтому НЕ использование запроса здесь неприменимо. Мне просто интересно, может ли какое-либо из моих предложений выше ускорить процесс.

5
задан Bascy 8 August 2011 в 11:51
поделиться