| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 Добавлено через 54 секунды Хм... а что такое "компоненты для DAO"? Добавлено через 1 минуту и 58 секунд DAO - это СУБД такая? Первый раз слышу. |
| Автор: GrigoriyFomin 12.7.2011, 21:01 |
| ну в принципе - затык не в самой передаче данных - данных после выполнени запроса - 1 длинное целое, а в том, что для вывода этого 1 целого внутреннее ядро Jet по-видимому, проверяет все слова на соответствие условию, хотя должно использовать индекс. Компоненты DAO - это набор tdataset для работы с базами Access (и еще жменей других) посредством технологии доступа DAO. Наиболее распространенные - наборы от Winsoft и Kadao. Кстати ,не может быть такое, что DAO не умеет работать с юникодом? Ведь технология дюже древняя, еще в акцессе 97 была разработана ,а потом и в 2000? |