powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Составить запросик...
2 сообщений из 27, страница 2 из 2
Составить запросик...
    #32442476
IN vs EXISTS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V... будет работать быстрее, ..., потому, что проверка на СУЩЕСТВОВАНИЕ множества (достаточно убедиться, что записей >0) (почти) всегда быстрее проверки на попадание в множество (перебор значений). Когда разработчикам удается сделать IN по времени выполнения не хуже exists для каких-то конкретных ситуаций - они пишут об этом самыми крупными красными буквами на заглавных страницах своих сайтов.

ага. Доходит до идиотизма (в Аксессе) сплошь и рядом:
Select a from t where t.id IN (select трам-пам-пам, без ссылок на поля t из внешнего) (1)
считается часами. Ибо:
пусть в t - млн записей, а (select трам-пам-пам) за долю секунды возвращает {набор}, т.что такой-вот запрос считается в лет
Select a from t where t.id IN ({набор}) (2)
Но изначальный набор будет считаться не так, как вам кажется естественным - вернуть набор из внутреннего in, а потом, воспользовавшись индексом, получить результат из большой таблицы. Нет, будет считаться ТОЧНО так же как и экзист, (где, естественно, внутрь экзистного селекта передается t.id, и примерно с той же скоростью), т.е. для каждой записи из t, будет заново пересчитываться весь внутренний запрос (как будто он поменялся с предыдущей записи) и т.п. В таких случаях получение {набора} из внутреннего запроса отдельно и подстановка его в виде строки (значений с разделителями) во внешний (какой-нить ф-ей) ускоряет запросы на несколько порядков.
...
Рейтинг: 0 / 0
Составить запросик...
    #32442587
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
GeoВиктоша говорит, что в маленьких таблицах вариант ВС будет быстрее. Про большие молчит.
Только не надо в моем варианте искать какое-то высшее знание. Я написал первое, что пришло в голову.
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Составить запросик...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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