Udostępnij za pośrednictwem


SET SHOWPLAN_TEXT (Transact-SQL)

Powoduje, że firmy Microsoft SQL Server nie do wykonać Transact-SQL instrukcje. Zamiast tego SQL Server Zwraca szczegółowe informacje na temat w jaki sposób są wykonywane w sprawozdaniu.

Topic link iconKonwencje składni języka Transact-SQL

SET SHOWPLAN_TEXT { ON | OFF }

Remarks

Ustawiono zestaw SHOWPLAN_TEXT na wykonać lub uruchomić czas, a nie w czasie analizowania.

Kiedy SHOWPLAN_TEXT zestaw jest włączone, SQL Server Zwraca informacje o realizacji dla każdego Transact-SQL Instrukcja bez jej wykonywania. Po ta opcja jest ustawiona na wykonanie programu informacje wszystkich kolejnych SQL Server dopóki pole wyboru jest zaznaczone OFF, zwracana jest instrukcji. Na przykład, jeśli w instrukcja CREATE TABLE jest wykonywana w czasie, gdy SHOWPLAN_TEXT zestaw jest włączone, SQL Server Zwraca komunikat o błędzie z kolejnych instrukcja SELECT, związanych z tej samej tabeli informującego określona tabela nie istnieje. Dlatego kolejnych odwołań do tej tabela nie powiedzie się.Gdy SHOWPLAN_TEXT zestaw jest wyłączona, SQL Server wykonuje instrukcje bez generowania raportu informacje planu wykonania.

zestaw SHOWPLAN_TEXT jest przeznaczony do zwracania można odczytać danych wyjściowych dla aplikacji Microsoft Win32 w wiersz polecenia takie jak Osql narzędzie.zestaw SHOWPLAN_ALL zwraca bardziej szczegółowe dane wyjściowe przeznaczone do użytku z programami przeznaczone do obsługi dane wyjściowe.

Nie można określić zestaw SHOWPLAN_TEXT i SHOWPLAN_ALL zestaw w procedurze przechowywanej.Muszą one być tylko instrukcje w serii.

zestaw SHOWPLAN_TEXT zwraca informacje, jak zbiór wierszy, które tworzą hierarchiczną drzewa reprezentujący kroki podejmowane przez SQL Server procesor kwerend, jak wykonuje każdej instrukcja. Każda instrukcja odzwierciedlane w danych wyjściowych zawiera jeden wiersz z tekstem instrukcji, następuje kilka wierszy ze szczegółami wykonanie czynności.W tabela przedstawiono kolumna, aby zawierała dane wyjściowe.

Nazwa kolumna

Description

StmtText

Dla wierszy, które nie są typu PLAN_ROW, ta kolumna zawierała tekst Transact-SQL Instrukcja. Dla wierszy typu PLAN_ROW ta kolumna zawiera opis operacji.Ta kolumna zawiera operator fizyczne i opcjonalnie może również zawierać operator logiczny.W tej kolumnie mogą również występować opis, który jest określony przez operator fizycznej.Aby uzyskać więcej informacji na temat fizycznej operatorów Zobacz Argument kolumnazestaw SHOWPLAN_ALL (języka Transact-SQL).

Aby uzyskać więcej informacji na temat operatorów fizyczne i logiczne, które są widoczne w danych wyjściowych plan wykonania zobacz Logical and Physical Operators Reference

Uprawnienia

Aby użyć SHOWPLAN_TEXT zestaw, musi mieć wystarczające uprawnienia, aby wykonać instrukcje, na którym jest wykonywane zestaw SHOWPLAN_TEXT i musisz mieć uprawnienie plan wykonania dla wszystkich baz danych zawierających obiekty, do którego istnieje odwołanie.

Dla SELECT, INSERT, UPDATE i DELETE, EXEC stored_procedure, a EXEC user_defined_function instrukcje do wyprodukowania plan wykonania użytkownik musi:

  • Masz odpowiednie uprawnienia do wykonać Transact-SQL instrukcje.

  • Uprawnienie plan wykonania wszystkich baz danych zawierających obiekty, do którego odnosi się instrukcji języka Transact-SQL, takich jak tabele, widoki i tak dalej.

Dla wszystkich innych instrukcji, takie jak DDL USE database_namezestaw, DECLARE, dynamiczne SQL i tak dalej, tylko odpowiednie uprawnienia do wykonywania Transact-SQL potrzebne są instrukcje.

Aby uzyskać więcej informacji zobacz Showplan Security i SHOWPLAN Permission and Transact-SQL Batches.

Przykłady

W tym przykładzie przedstawiono sposób użycia indeksów przez SQL Server tak, jak przetwarza oświadczeń.

To jest kwerenda, przy użyciu indeksu:

USE AdventureWorks;
GO
SET SHOWPLAN_TEXT ON;
GO
SELECT *
FROM Production.Product 
WHERE ProductID = 905;
GO
SET SHOWPLAN_TEXT OFF;
GO

Poniżej znajduje się zestaw wyników:

StmtText                                           
---------------------------------------------------
SELECT *
FROM Production.Product 
WHERE ProductID = 905; 

StmtText                                                                                                                                                                                      
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|--Clustered Index Seek(OBJECT:([AdventureWorks].[Production].[Product].[PK_Product_ProductID]), SEEK:([AdventureWorks].[Production].[Product].[ProductID]=CONVERT_IMPLICIT(int,[@1],0)) ORDERED FORWARD) 

Oto kwerendę, nie korzystając z indeksu:

USE AdventureWorks;
GO
SET SHOWPLAN_TEXT ON;
GO
SELECT *
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;
GO
SET SHOWPLAN_TEXT OFF;
GO

Poniżej znajduje się zestaw wyników:

StmtText                                                                
------------------------------------------------------------------------
SELECT *
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00; 

StmtText                                                                                                                                                                                                
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|--Clustered Index Scan(OBJECT:([AdventureWorks].[Production].[ProductCostHistory].[PK_ProductCostHistory_ProductCostID]), WHERE:([AdventureWorks].[Production].[ProductCostHistory].[StandardCost]<[@1]))