Получение плана запроса/выполнения для динамического sql в SQL Server

Возможный дубликат:
Как мне получить план выполнения запроса?

как я могу увидеть план выполнения в SQL Server 2005 для динамического sql, который выполняется? Я не могу сохранить какие-либо файлы на компьютере, где находится база данных. Вот небольшой пример:

declare @sqlcmd nvarchar(1000)
declare @param1 nvarchar(14)

set @param1 = '11111111%'
set @sqlcmd = 'SELECT * FROM myTable WHERE customer_id LIKE @customer_id'
EXECUTE sp_executesql @sqlcmd, N'@customer_id nvarchar(14)', @customer_id = @param1

Поэтому я хотел бы увидеть план выполнения, который фактически используется для запроса SELECT.


person KTrum    schedule 22.02.2011    source источник


Ответы (2)


Просто нажмите ctrl + m в SQL Server Management Studio, чтобы активировать «Включить фактический план выполнения». Это покажет реальный план выполнения, как и для любого обычного запроса.

person Andreas Ågren    schedule 22.02.2011
comment
Ах, да, но, кажется, я не могу перевести его в текст? Установка showplan_text на не дает мне плана, кажется. - person KTrum; 22.02.2011
comment
Нет, это не так, но если вам абсолютно необходимо увидеть его в этом формате, вы можете распечатать сгенерированный запрос и запустить его вручную в SSMS. - person Andreas Ågren; 22.02.2011
comment
Используя SSMS 2016, я смог получить план выполнения из динамического SQL для отображения в тексте. Шаг 1, параметры SSMS, результаты запроса, SQL Server, результаты в текст, установите максимальное количество символов на 8192 (важно, иначе план усечен). Далее откройте новое окно New Query, введите команду SET STATISTICS XML ON; затем ваш sql... объявляет.... и т. д.. устанавливает вывод в текст, затем выполняет. План будет выводом текста xml. Тем не менее, максимальный вывод, по-видимому, составляет 8192, что может быть быстро исчерпано несколькими операторами. - person Jeff Mergler; 07.10.2016

Вы можете использовать профилировщик для захвата планов выполнения. Затем вы можете использовать что-то вроде обозревателя планов SQL Sentry (http://www.sqlsentry.com/plan-explorer/sql-server-query-view.asp), чтобы иметь возможность просматривать/разбивать захваченные планы запросов.

person Ian Chamberland    schedule 08.03.2011