ZESTAW SHOWPLAN_ALL (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 oświadczenia są wykonywane i zapewnia szacunków wymagań dotyczących zasób dla instrukcji.
Składnia
SET SHOWPLAN_ALL { ON | OFF }
Uwagi
Ustawienie ustawianie SHOWPLAN_ALL jest zestaw na wykonać lub czas jednostkowy i nie analizować czas.
Gdy ustawienie SHOWPLAN_ALL jest włączone, SQL Server zwraca informacje o wykonanie poszczególnych instrukcja bez wykonywania, a Transact-SQL sprawozdań nie zostaną wykonane.Po ta opcja jest zestaw na informacje o wszystkich kolejnych Transact-SQL sprawozdania są zwracane do czasu jest opcja zestaw OFF.Na przykład, jeżeli utworzenie tabeli wykonaniu instrukcja , podczas gdy ustawienie SHOWPLAN_ALL jest włączone, SQL Server zwraca komunikat o błędzie z kolejnych SELECT instrukcja dotyczących tej samej tabela, informowania użytkowników, którzy określona tabela nie istnieje.Dlatego kolejne odwołania do tej tabela nie powiedzie się.Gdy ustawienie SHOWPLAN_ALL jest wyłączona, SQL Server wykona instrukcje bez generowania raportu.
Ustaw SHOWPLAN_ALL jest przeznaczony do używane przez aplikacje napisane obsługiwać dane wyjściowe.Zwraca czytelne dane wyjściowe aplikacji wiersz polecenia Microsoft Win32, takie jak za pomocą zestawu SHOWPLAN_TEXT osql narzędzia.
Nie można określić zestaw SHOWPLAN_TEXT i SHOWPLAN_ALL USTAWIĆ wewnątrz procedura składowana; muszą one być jedynymi instrukcjami partia.
Ustaw SHOWPLAN_ALL 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 kolumny, ż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, zobacz Odwołanie do operatorów logicznych i fizycznych. |
StmtId |
Liczba instrukcja w bieżącej partia. |
ID. węzła |
Identyfikator węzła w bieżącej kwerendzie. |
Parent |
Identyfikator węzła nadrzędnego kroku. |
PhysicalOp |
Algorytm fizycznego wykonania dla węzła.Dla wierszy tylko typu PLAN_ROWS. |
LogicalOp |
Algebraicznych relacyjny operator reprezentowanego przez ten węzeł.Dla wierszy tylko typu PLAN_ROWS. |
Argument |
Dodatkowe informacje dotyczące wykonywania operacji.Zawartość tej kolumna zależy od fizycznego operator. |
DefinedValues |
Zawiera rozdzielaną przecinkami listę wartości wprowadzone przez tego operator.Wartości te mogą być obliczane wyrażeń, które były obecne w bieżącej kwerendy (na przykład w liście lub klauzulaWHERE) lub wewnętrznego wartości wprowadzone przez procesor kwerend do przetworzenia tej kwerendy.Te zdefiniowane wartości mogą następnie odwoływać się gdzie indziej w ramach tej kwerendy.Dla wierszy tylko typu PLAN_ROWS. |
EstimateRows |
Szacunkowa liczba wierszy wytworzonych przez ten operator.Dla wierszy tylko typu PLAN_ROWS. |
EstimateIO |
Szacowany we/wy koszt * dla tego operator.Dla wierszy tylko typu PLAN_ROWS. |
EstimateCPU |
Szacowany Procesora koszt * dla tego operator.Dla wierszy tylko typu PLAN_ROWS. |
AvgRowSize |
Szacowany rozmiar wiersza średnia (w bajtach) wierszy przekazywanych za pośrednictwem tego operator. |
TotalSubtreeCost |
Szacowany (skumulowany) koszt * tę operację i wszystkich działań podrzędność . |
OutputList |
Zawiera rozdzielaną przecinkami listę kolumn jest przewidywane przez bieżącą operację. |
Ostrzeżenia |
Zawiera rozdzielaną przecinkami listę ostrzeżeń odnoszących się do bieżącej operacji.Ostrzeżenia mogą zawierać ciąg "Nr STATS:()" z listy kolumn.To ostrzeżenie oznacza, że optymalizator kwerendy próby należy decyzja, w oparciu o dane statystyczne dla tej kolumna, ale żaden nie był dostępny.W związku z tym optymalizator kwerendy miał zgadnąć, która może spowodować utworzenie zaznaczenia planu kwerend nieefektywne.Aby uzyskać więcej informacji na temat tworzenia lub aktualizowania statystyk kolumna (który Pomoc optymalizator kwerendy wybrać bardziej efektywnego planu kwerend), zobacz UPDATE STATISTICS.W tej kolumna opcjonalnie może zawierać ciąg "Brak sprzężenia PREDYKAT", co oznacza, że łączyć (obejmujące tabel) odbywa się bez predykat łączyć .Przypadkowo upuszczanie predykat łączyć może spowodować kwerendę, która trwa znacznie dłużej niż oczekiwano, a następnie zwraca ogromny zestaw wyników.Jeśli to ostrzeżenie jest obecny, należy sprawdzić, czy nieobecność predykat łączyć jest zamierzone. |
Typ |
Typ węzła.Węzeł nadrzędny każda kwerenda jest Transact-SQL instrukcja typu (na przykład SELECT, INSERT, wykonanie i tak dalej).Węzły podrzędne reprezentujące wykonanie planów typ jest PLAN_ROW. |
Równoległe |
0 = Operator nie jest uruchomiona równolegle. 1 = Operator działa równolegle. |
EstimateExecutions |
Szacunkowa liczba powtórzeń tego operator zostanie wykonana podczas korzystania z bieżącej kwerendy. |
* Kosztu jednostki są oparte na wewnętrzny pomiar czas, nie ściany zegara czas.Są one używane do określania względny koszt planu w porównaniu z innymi planami.
Uprawnienia
Aby użyć zestawu SHOWPLAN_ALL, musi mieć uprawnienia wystarczające do wykonać instrukcji, na które SHOWPLAN_ALL 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.
SHOWPLAN uprawnienia do wszystkich baz danych zawierających obiekty odwołuje się Transact-SQL instrukcji, takich 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
Dwie deklaracje, które należy wykonać za pomocą ustawień SHOWPLAN_ALL USTAWIĆ demonstrujące sposób SQL Server analizuje i optymalizuje wykorzystanie indeksów w kwerendach.
Pierwszą kwerendę używa porównania równości operator (=) w klauzula WHERE w kolumnaindeksowanej.wyniki indeksu klastrowanego stara wartość w LogicalOp kolumna i nazwę indeksu w argumentukolumna.
Drugą kwerendę używa operator LIKE w klauzulaWHERE.Zmusza to SQL Server Skanowanie indeks klastrowany i znaleźć dane spełniającego warunek klauzula WHERE.wyniki wartość skanowanie indeksu klastrowanego w LogicalOp kolumna o nazwie indeksu w argumentu kolumnai wartości filtru w LogicalOp warunek klauzula WHERE wkolumna argumentukolumna.
Wartości w EstimateRows i TotalSubtreeCost kolumny są mniejsze dla pierwszej kwerendy indeksowanych, wskazujący, że jest przetwarzana znacznie szybciej i wykorzystuje mniej zasobów niż nieindeksowanych kwerendy.
USE AdventureWorks2008R2;
GO
SET SHOWPLAN_ALL ON;
GO
-- First query.
SELECT BusinessEntityID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, EmergencyContactID
FROM HumanResources.Employee
WHERE EmergencyContactID LIKE '1%';
GO
SET SHOWPLAN_ALL OFF;
GO
Zobacz także