Быстрее использовать интерфейс ADO _Recordset напрямую, чем использовать TADODataset.
ADO не очень быстрый, и TADODataset должен запросить базовый набор _Recordset, чтобы определить типы столбцов и т. Д. (ADO имеет интерфейсы SafeCall, так что для чтения каждой функции / свойства требуется немало затрат, посмотрите на сгенерированную сборку в представлении ЦП).
Используя _Recordset напрямую, я оптимизировал загрузку данных в наши собственные объекты данных с коэффициентом 2 (множество небольших запросов). Может быть, это полезно для большого количества данных.
Для больших запросов вы можете использовать «только для чтения» «курсор на стороне сервера» с «открытым вперед» (с курсором на стороне клиента данные загружаются и кэшируются на клиенте)