Здравствуйте, barbanel, Вы писали:
1. Интересует точно ли ситуация с 5 секундами воспроизводится регулярно?
2. Запрос с TBetterAdoDataset выполняется с той же самой машины, с которой выполняется и тот самый долгий запрос?
3. Параметры (value) идентичны?
4. Что с планом запроса? Интересует есть ли покрывающий индекс в базе данных?
Должно быть вот так примерно так:
create nonclustered index ix1 on dbo.TableName (id) include (Field1, Field2);
updste statistics dbo.TableName WITH fullscan;
Также вот ссылки, чтобы поразмышлять:
https://groups.google.com/g/borland.public.delphi.database.ado/c/3H82a_CAdO4?pli=1
http://www.delphigroups.info/2/56/218124.html
В целом, должно быть вот так:
1. CursorLocation — Server
2. CursorType — OpenForwardOnly
3. ExecuteOptions — ASyncFetch
4. CacheSize — some small number like 20.
В противном случае, TBetterAdoDataset всё же будет быстрее.