powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Быстродействие Access
14 сообщений из 14, страница 1 из 1
Быстродействие Access
    #39455791
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Подскажите, пожалуйста, какое решение в плане быстродействия предпочтительней? Для получение в VBA единичного значения выполняется ли быстрее функция DLookup (либо DMax, DMin и аналоги) или же быстрее будет вариант с CurrentProject.Connection.Execute(SQL).Filds(0)? Или же быстрее цикл Do - Loop?

Просто у меня некоторые запросы открываются быстрее, некоторые - очень медленно, и я не могу уловить причину.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39455794
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень трудно сказать, в каком направлении быстрее побежит сферический конь... но в обычных условиях как правило быстрее всего работает DAO-запрос.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39455802
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaОчень трудно сказать, в каком направлении быстрее побежит сферический конь... но в обычных условиях как правило быстрее всего работает DAO-запрос.
Ну почему DAO, ADO тоже имеет право на жизнь.
Да и посовременнее будет.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39455805
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI , у автора приоритет - скорость. И уж не знаю почему, но если все необходимые структуры приготовлены и проинициализированы заранее, то как правило именно DAO-рекордсет быстрее всего отдаёт нужные данные...

Впрочем, при условии, что и код, и данные находятся в одной и той же, причём локальной, БД. Если это неверно - то возможны варианты.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39455806
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня локальная среда. :^)
...
Рейтинг: 0 / 0
Быстродействие Access
    #39455813
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina ROI , у автора приоритет - скорость. И уж не знаю почему, но если все необходимые структуры приготовлены и проинициализированы заранее, то как правило именно DAO-рекордсет быстрее всего отдаёт нужные данные...

Впрочем, при условии, что и код, и данные находятся в одной и той же, причём локальной, БД. Если это неверно - то возможны варианты.
Я вас огорчу (вы просто не умеете готовить ADO)
...
Рейтинг: 0 / 0
Быстродействие Access
    #39455838
Функция DLookup и т.п., собственно, формирует и выполняет DAO-запрос (в проекте - ADO), поэтому сравнивать быстродействие нет смысла. Преимущество функции в том, что при отсутствии записей она возвращает Null, а в запросе надо еще проверять BOF. Кроме того применение функции в другом запросе - часто единственная возможность в Аксе получить обновляемый набор записей.
В свою очередь использование Execute(SQL) - дает возможность получить значение из запроса на нескольких таблицах или из другой БД.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39455843
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев )Функция DLookup и т.п., собственно, формирует и выполняет DAO-запрос (в проекте - ADO), поэтому сравнивать быстродействие нет смысла. Преимущество функции в том, что при отсутствии записей она возвращает Null, а в запросе надо еще проверять BOF. Кроме того применение функции в другом запросе - часто единственная возможность в Аксе получить обновляемый набор записей.
В свою очередь использование Execute(SQL) - дает возможность получить значение из запроса на нескольких таблицах или из другой БД.
Проблемы быстродействия DLookup на 1000 раз обсосаны на всех форумах.
Я себе писал свою для прилинкованных таблицах так и для ADO.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39458651
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое за ответы!

Если позволите, хотела бы задать еще такой вопрос в тему.

Имеют ли значение для быстродействия запросов такие факторы:
1) Явное объявление переменных в коде (в функции, которую использует запрос).
2) Не использование в коде переменных типа Variant, а прописывание других типов для переменных.
3) Ограничение длины текстовых полей в таблицах до минимума (в таблице, из которой запрос берет данные).
...
Рейтинг: 0 / 0
Быстродействие Access
    #39458665
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OkeTurelСпасибо большое за ответы!

Если позволите, хотела бы задать еще такой вопрос в тему.

Имеют ли значение для быстродействия запросов такие факторы:
1) Явное объявление переменных в коде (в функции, которую использует запрос).
2) Не использование в коде переменных типа Variant, а прописывание других типов для переменных.
3) Ограничение длины текстовых полей в таблицах до минимума (в таблице, из которой запрос берет данные).
1) Да
2) Да
3) Тут не знаю не тестировал никогда
...
Рейтинг: 0 / 0
Быстродействие Access
    #39458687
По третьему пункту:
Если данные не обрабатываются из VBA-кода в цикле, то вы не заметите разницу в длине коротких и длинных имен полей таблицы. Если обработка в цикле из кода, то лучше (идеально для быстродействия) обращаться по индексам, т.е. поля в запросе выстраиваются в нужном фиксированном порядке и в коде идет обращение по их индексу, начиная с нуля.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39459807
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое.
Третий пункт, так и буду делать. :^)
...
Рейтинг: 0 / 0
Быстродействие Access
    #39459958
Вроде вопрос был не о длине ИМЕН полей, а о длине самих полей.
...
Рейтинг: 0 / 0
Быстродействие Access
    #39460120
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поиск по полям типа CHAR идет быстрее, чем по полям VARCHAR, собственно длина поля также влияет на быстродействие, но в меньшей степени
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Быстродействие Access
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]