ZESTAW SHOWPLAN_TEXT (Transact-SQL)

Powoduje, że program Microsoft SQL Server nie do wykonać Transact-SQL instrukcji.Zamiast tego SQL Server zwraca szczegółowe informacje na temat sposobu wykonania oświadczeń.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

SET SHOWPLAN_TEXT { ON | OFF }

Uwagi

Ustawienie ustawianie SHOWPLAN_TEXT jest zestaw na wykonać lub czas jednostkowy i nie analizować czas.

Gdy ustawienie SHOWPLAN_TEXT jest włączone, SQL Server zwraca informacje o wykonanie każdego Transact-SQL instrukcja bez wykonywania typie.Po tej opcji jest zestaw na, wykonanie planu informacje o wszystkich kolejnych SQL Server sprawozdania jest zwracany, dopóki jest opcja zestaw OFF.Na przykład, jeżeli utworzenie tabeli wykonaniu instrukcja , podczas gdy ustawienie SHOWPLAN_TEXT jest włączone, SQL Server zwraca komunikat o błędzie z kolejnych SELECT instrukcja dotyczących tej samej tabela informujący użytkownika, że określona tabela nie istnieje.Dlatego kolejne odwołania do tej tabela nie powiedzie się.Gdy ustawienie SHOWPLAN_TEXT jest wyłączona, SQL Server wykonuje instrukcje bez generowania sprawozdania z wykonania planu informacji.

Ustaw SHOWPLAN_TEXT jest przeznaczony do zwrotu można odczytać danych wyjściowych dla aplikacji Microsoft Win32 w wiersz polecenia takich jak osql narzędzia.Ustaw SHOWPLAN_ALL zwraca bardziej szczegółowe dane wyjściowe przeznaczonych do programów przeznaczonych do obsługi dane wyjściowe.

Ustaw SHOWPLAN_TEXT i ustaw SHOWPLAN_ALL nie można określić w procedura składowana.Muszą one być jedynymi instrukcjami partia.

Ustaw SHOWPLAN_TEXT zwraca informacje, jak zestaw wierszy tworzących hierarchiczne drzewa reprezentujący kroki podjęte przez SQL Server kwerenda procesor wykonuje każdego instrukcja.Każda instrukcja odzwierciedlane w danych wyjściowych zawiera jeden wiersz z tekstem instrukcja, następuje kilka wierszy ze szczegółami wykonanie czynności.tabela pokazuje kolumna , że zawiera dane wyjściowe.

Nazwa kolumny

Opis

StmtText

Dla wierszy, które nie są typu PLAN_ROW, ta kolumna zawiera tekst z Transact-SQL instrukcja.Dla wierszy typu PLAN_ROW ta kolumna zawiera opis operacji.Ta kolumna zawiera fizyczny operator i opcjonalnie może również zawierać operatorlogiczny.W tej kolumna może również następować opis, który jest określony przez fizyczne operator.Aby uzyskać więcej informacji na temat fizycznej operatorów zobacz argumentu kolumna w ZESTAW SHOWPLAN_ALL (Transact-SQL).

Aby uzyskać więcej informacji na temat fizycznej i logicznej operatorów, które można przeglądać w produkcji Showplan zobaczOdwołanie do operatorów logicznych i fizycznych

Uprawnienia

Aby użyć zestawu SHOWPLAN_TEXT, musi mieć uprawnienia wystarczające do wykonać instrukcji, na które SHOWPLAN_TEXT USTAWIONY jest wykonywany i musi mieć uprawnienie SHOWPLAN dla wszystkich baz danych zawierających obiekty.

Dla SELECT, INSERT, UPDATE i DELETE, szefowie stored_procedureoraz szefowie user_defined_function instrukcji do produkcji Showplan, użytkownik musi:

  • Mieć odpowiednie uprawnienia do wykonać Transact-SQL instrukcji.

  • Mieć uprawnienie SHOWPLAN wszystkich baz danych zawierających obiekty odwołuje się instrukcje języka Transact -SQL , takie jak tabele, widoki i tak dalej.

Dla wszystkich innych sprawozdań, takich jak DDL, UŻYJ database_name, SET, DECLARE, SQLdynamiczne i tak dalej tylko odpowiednie uprawnienia do wykonać Transact-SQL sprawozdania są potrzebne.

Aby uzyskać więcej informacji, zobacz SHOWPLAN zabezpieczeń i Uprawnienie SHOWPLAN i instancje Transact-SQL.

Przykłady

W tym przykładzie przedstawiono sposób indeksy są używane przez SQL Server w czasie przetwarzania instrukcji.

To jest kwerenda przy użyciu indeksu:

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

Oto zestaw wyników:

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

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

Oto kwerendę, nie korzystając z indeksu:

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

Oto zestaw wyników:

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

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