Как заставить принудительно выполнить подзапрос так же, как таблицу #temp?

Я повторяю вопрос, заданный Mongus PongПочему использование временной таблицы будет быстрее, чем вложенный запрос? у которого нет ответа, который работает для меня.

Большинство из нас в какой-то момент обнаруживают, что, когда вложенный запрос достигает определенной сложности, он должен разбиваться на временные таблицы, чтобы поддерживать его производительность. этоабсурд что это когда-либо может быть наиболее практичным способом продвижения вперед и означает, что эти процессы больше не могут быть видны. И часто сторонние BI-приложения будут хорошо работать только с представлениями, поэтому это очень важно.

Я убежден, что должна быть простая настройка плана запросов, чтобы двигатель просто спулировал каждый подзапрос по очереди, работая изнутри. Нет второго гадания, как он может сделать подзапрос более избирательным (что иногда бывает очень успешно), и нет возможности коррелированных подзапросов. Просто стек данных, которые программист намеревался вернуть в виде автономного кода в скобках.

Я часто обнаруживаю, что простой переход из подзапроса в таблицу # занимает от 120 секунд до 5. По сути, оптимизатор где-то допускает серьезную ошибку. Конечно, могут быть очень трудоемкие способы, которыми я мог бы уговорить оптимизатора смотреть на таблицы в правильном порядке, но даже это не дает никаких гарантий. Я не спрашиваю об идеальном времени выполнения в 2 секунды здесь, просто скорость, которую временные табуляции предлагают мне в пределах гибкостиПосмотреть.

Я никогда не писал здесь раньше, но я писал SQL годами и читал комментарии других опытных людей, которые также просто пришли, чтобы принять эту проблему, и теперь я просто хотел бы, чтобы соответствующий гений сделал шаг вперед и сказал: Особый намек это X ...

Ответы на вопрос(2)

Ваш ответ на вопрос