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ń.
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]))
Zobacz także