Сравнение между оператором выбора и оператором множественного выбора, который действует как пакет - PullRequest
0 голосов
/ 28 марта 2011

У меня есть хранимая процедура, которая содержит некоторые операторы Select, которые возвращают их результат объединения.

Я думаю и пишу один выбор вместо нескольких Select и хочу сравнить ПЛАН ИСПОЛНЕНИЯ из них (SP и один оператор Select).

проблема заключается в том, что при выполнении этого оператора twe (SP и Select) все операторы select в sp имеют свой план выполнения. Я хочу, чтобы план выполнения SP был UNIT.

IУ вас есть другой вопрос. Рассмотрите план выполнения, приложенный к этому сообщению. Сумма стоимости плана выполнения для всей выписки должна составлять 100%?

Но почему сумма стоимости всей выписки из этого плана выполнения не должна составлять 100%?

План выполнения

спасибо

Ответы [ 2 ]

0 голосов
/ 28 марта 2011

Если вы пытаетесь сравнить две версии логики, тогда скрипт выглядит следующим образом:

Exec <storedProc>

Select <data> From <tables>

Позволит тебе это сделать. Да, план выполнения покажет вам все запросы внутри хранимой процедуры. Ищите планы для запросов, которые происходят за пределами SP. Если они дают общую стоимость> 50%, то SP работает лучше.

В качестве примечания: если ваш SP принимает параметры, убедитесь, что вы сравниваете планы выполнения по диапазону значений параметров.

0 голосов
/ 28 марта 2011

A UNION - это несколько операторов выбора.По сути, вы говорите: «Покажите мне результаты этого запроса, объединенные с результатами этого запроса, объединенные с результатами этого запроса ...» Как еще SQL Server будет получать результаты этих запросов без их выполнения?

...