По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) У меня были сценарии когда переделка подобного запроса на следующий давала существенное уменьшение просканированных записей:
Вложенный запрос можно вынести во временную таблицу и проиндексировать. Но все зависит от соотношения количества записей между таблицами Таблица1 и Таблица2 и индексирования.
Выбрать* из Таблица1 ГДЕ Таблица1.Заказ В
(ВЫБРАТЬ Таблица2.ЗаказНаПроизводство ИЗ Таблица2
ОБЪЕДЕНИТЬ ВСЕ
ВЫБРАТЬ Таблица2.ЗаказПокупателя ИЗ Таблица2)
Вложенный запрос можно вынести во временную таблицу и проиндексировать. Но все зависит от соотношения количества записей между таблицами Таблица1 и Таблица2 и индексирования.
вопрос теоретический или практический ? какая СУБД ? тут 3 варианта.
1 - самый простой, хорошо для Oracle, но плохо работает ИЛИ на Ms SQL
и 3 вариант от kav kav (alexkmbk) для малого количества данных , в разных СУБД разные ограничения, то ли 256, то ли 1000 элементов В, (иначе оптимизатор СУБД все равно переделает на внутреннее соединение)
1 - самый простой, хорошо для Oracle, но плохо работает ИЛИ на Ms SQL
ВЫБРАТЬ
таблица1.Заказ
ИЗ
таблица1 КАК таблица1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2
ПО (таблица1.Заказ = Таблица2.ЗаказНаПроизводство
ИЛИ таблица1.Заказ = Таблица2.ЗаказПокупателя)
2 - убираем ИЛИ, хорошо для MS SQL///////////////////////////////////////////////////////// ////////////////////////////////////////////
ВЫБРАТЬ
таблица1.Заказ
ИЗ
таблица1 КАК таблица1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2
ПО таблица1.Заказ = Таблица2.ЗаказНаПроизводство
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
таблица1.Заказ
ИЗ
таблица1 КАК таблица1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2
ПО таблица1.Заказ = Таблица2.ЗаказПокупателя
Показатьи 3 вариант от kav kav (alexkmbk) для малого количества данных , в разных СУБД разные ограничения, то ли 256, то ли 1000 элементов В, (иначе оптимизатор СУБД все равно переделает на внутреннее соединение)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот