Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Быстродействие Access / 14 сообщений из 14, страница 1 из 1
19.05.2017, 08:20
    #39455791
OkeTurel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Быстродействие Access
Здравствуйте.

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

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

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

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

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

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

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

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


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