Включить / выключить план выполнения в хранимой процедуре SQL Server - PullRequest
3 голосов
/ 07 сентября 2011

В моей хранимой процедуре она будет выполнять много запросов на вставку / обновление и вызывать несколько вложенных хранимых процедур.

Я хочу отключить план выполнения, минуя вышеупомянутые запросы, а затем переключить егочтобы начать профилирование запросов, которые меня интересуют.

например:

... отключить план выполнения

INSERT INTO FOO ...
UPDATE FOO...
EXEC usp_FOO

... включить план выполнения здесьтогда я могу начать получать статистику производительности

SELECT * FROM FOO

В SQL Server Management Studio у нас есть «Включить фактический план выполнения» для трассировки / отладки производительности, но если имеется более 100 запросов, выводится план выполненияпревысит и перестанет работать.Поэтому я считаю, что должен быть какой-то переключатель, например «SET EXECUTION PLAN OFF», что-то вроде этого

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Я рекомендую прочитать Захват планов выполнения с помощью SQL Server 2005 Profiler . Используя профилировщик, вы можете создавать планы выполнения для каждого отдельного запроса, выполняемого в вашей хранимой процедуре, не беспокоясь об ограничениях вывода SQL Server Management Studio.

0 голосов
/ 07 сентября 2011

Вы можете использовать подсказки запроса, чтобы вызвать 'RECOMPILE' (игнорировать кэшированный план) для всех CRUD и MERGE - def & samples здесь: http://msdn.microsoft.com/en-us/library/ms181714.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...