Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Почему ADO значительно медленнее DAO


Автор: GrigoriyFomin 12.7.2011, 00:43
Подскажите, почему, используя, DAO-компоненты (KADAO, winsoft) поиск и отбор записей идет в разы быстрее, чем при использовании родных компонентов dbGo?

И еще - использую в ADO запрос следующиего вида
Select top 1 Id from table1 where nam like "п*"';
по идее, должно отдаваться первое слово (индексное поля для датасета указал и оно существует) причем быстро, однако в зависимости от количества записей (а их порядка сотен тысяч) врем выполнения разное? Курсор указан на серверной строне. Такое ощущение, что запрос индекс не использует. Аналогичный запрос в самой MS Access выполняется очень быстро - практически мнгновенно. Ключевое поле и индексы по полю NAM созданы

При использовании DAO - скорость в РАЗЫ выше даже при использовании медленного locate с loPartialKey

Если проблема в дельфе через АДО не решается - подскажите набор нормальных компонентов для DAO для Delphi XE.  Kadao 2011 - глючат (вываливается в дебаггере на команде int3=, в winsoft DAO - не отображаются нац. символы не в 1251 кодировке (даже если установить EnableWideString в true)

Автор: Akella 12.7.2011, 16:46
ADO - это самый великий, наверное, тормоз, т.к. работает не на прямую с СУБД, а через какие-то драйверы.

А как расшифровывается DAO? Особенно первое слово ;)

Когда то давно Vit проводил эксперимент по работе с Paradox 7. Оказалось, что BDE в 2000! раз быстрее ADO smile

Добавлено через 54 секунды
Цитата(GrigoriyFomin @  12.7.2011,  00:43 Найти цитируемый пост)
подскажите набор нормальных компонентов для DAO

Хм... а что такое "компоненты для DAO"?

Добавлено через 1 минуту и 58 секунд
DAO - это СУБД такая? Первый раз слышу.

Автор: GrigoriyFomin 12.7.2011, 21:01
ну в принципе - затык не в самой передаче данных - данных после выполнени запроса - 1 длинное целое, а в том, что для вывода этого 1 целого внутреннее ядро Jet по-видимому, проверяет все слова на соответствие условию, хотя должно использовать индекс.

Компоненты DAO - это набор tdataset для работы с базами Access (и еще жменей других) посредством технологии доступа DAO. Наиболее распространенные - наборы от Winsoft и Kadao. Кстати ,не может быть такое, что DAO не умеет работать с юникодом? Ведь технология дюже древняя, еще в акцессе 97 была разработана ,а потом и в 2000?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)