ADO в Delphi
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
На днях обнаружил интересную особенность. Есть приложение написаное на Делфи и работающее с ODBC источниками данных через TADOQuery. На селектах возвращающих небольшое количество записей ничего страшного не наблюдается, но если селект должен вернуть с сотню тысяч записей, то длительность выполнения запроса просто шокирует. Кто-нибудь сталкивался с такой проблемой?
Филь глюк!
miland, проблема вполне логичная - чем больше записей возвращаешь, тем дольше фетчится резалтсет 

Даже самый дурацкий замысел можно воплотить мастерски
Он фетчится неоправдано долго. Я уже достаточно различных резалтсетов из различных языков и баз перефетчил, что-то там не то.
OpenCursor примитивнейшего запроса идет 10 секунд... это не нормально, фетч тоже тормознутый...
OpenCursor примитивнейшего запроса идет 10 секунд... это не нормально, фетч тоже тормознутый...
Филь глюк!
miland, если ты делаешь бутерброд из ADO и ODBC, то быстро по определению быть не могёт.
Даже самый дурацкий замысел можно воплотить мастерски
Полностью поддерживаю, ADO не подходит бля оперирования большими объёмами...miland, если ты делаешь бутерброд из ADO и ODBC, то быстро по определению быть не могёт.
Сравнил с IB и c BDE, так скорость ADO просто безобразная!
GOS, материться не обязательно 
Скорость у ADO вполне приличная, если пользоваться прямыми драйверами, заточенными под ADO DB
Правда таких далеко не так много, поэтому и используются будетрброды - сначала вызывается MS OLE DB provider for ODBC, потом ODBC, а ODBC идёт к native driver'у... вот и получается не быстро.
Кстати выборка ещё более-менее терпимо происходит, но вот если нужно инициализировать таблицу тысчёнкой другой записей - то это смерть всему получается

Скорость у ADO вполне приличная, если пользоваться прямыми драйверами, заточенными под ADO DB

Кстати выборка ещё более-менее терпимо происходит, но вот если нужно инициализировать таблицу тысчёнкой другой записей - то это смерть всему получается
Даже самый дурацкий замысел можно воплотить мастерски
miland, ты бы ради приличия сказал, о каком ODBC источнике идёт речь... Да, и заодно сразу на больших объёмах посмотри как память расходуется...
Даже самый дурацкий замысел можно воплотить мастерски
В том то вся и соль что хотелось бы чтоб работало с различными серверами. Экспериментировал с MS SQL. Но проблема явно не в сервере
Филь глюк!
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
А на самом сервере этот запрос быстро выполняется?
Может дело в запросе, может там выборка с сортировкой по выражению или еще чего-нибудь вроде того, а?
Может дело в запросе, может там выборка с сортировкой по выражению или еще чего-нибудь вроде того, а?
Запрос возвращающий 150 тыс. записей на сервере выполняется не больше секунды. Простой селект по одной таблице с выборкой по индексированому полю.
Филь глюк!