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.
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]))