Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Powoduje to wykonywanie Transact-SQL instrukcji Microsoft SQL Server i generowanie szczegółowych informacji o tym, jak polecenia zostały wykonane w formie dobrze zdefiniowanego dokumentu XML.
Transact-SQL konwencje składni
Składnia
SET STATISTICS XML { ON | OFF }
Uwagi
Ustawienie SET STATISTICS XML jest ustawiane w czasie wykonywania lub działania, a nie w czasie parsowania.
Gdy SET STATISTICS XML jest włączony, SQL Server zwraca informacje o wykonaniu dla każdego polecenia po jego wykonaniu. Po ustawieniu tej opcji ON zwracane są informacje o wszystkich kolejnych instrukcjach Transact-SQL, aż opcja zostanie ustawiona na WYŁĄCZONE. Należy zauważyć, że SET STATISTICS XML nie musi być jedynym zaświadczeniem w partii.
SET STATISTICS XML zwraca wyjście jako nvarchar(max) dla aplikacji, takich jak narzędzie sqlcmd , gdzie wyjście XML jest następnie wykorzystywane przez inne narzędzia do wyświetlania i przetwarzania informacji o planie zapytania.
SET STATISTICS XML zwraca informacje jako zbiór dokumentów XML. Każde polecenie po instrukcji SET STATISTICS XML ON jest odzwierciedlone w wyniku pojedynczego dokumentu. Każdy dokument zawiera tekst oświadczenia, a następnie szczegóły kroków wykonania. Wyjście pokazuje informacje w czasie działania, takie jak koszty, dostęp do indeksów i typy wykonywanych operacji, kolejność połączeń, liczbę wykonań operacji fizycznej, liczbę wierszy generowanych przez każdy operator fizyczny i inne.
Dokument zawierający schemat XML dla wyjścia XML przez SET STATISTICS XML jest kopiowany podczas konfiguracji do lokalnego katalogu na komputerze, na którym zainstalowany jest Microsoft SQL Server. Można go znaleźć na dysku zawierającym pliki instalacyjne SQL Server, pod adresem:
\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd
Schemat Showplan można również znaleźć na tej stronie internetowej.
SET STATISTICS PROFILE i SET STATISTICS XML są swoimi odpowiednikami. Pierwszy z nich generuje tekst tekstowy; ten ostatni generuje wyjście XML. W przyszłych wersjach SQL Server informacje o planie wykonania zapytań będą wyświetlane wyłącznie za pomocą instrukcji SET STATISTICS XML, a nie instrukcji SET STATISTICS PROFILE.
Uwaga / Notatka
Jeśli w programie SQL Server Management Studio wybrano Uwzględnij rzeczywisty plan wykonania, ta opcja SET nie generuje danych wyjściowych programu Showplan XML. Wyczyść przycisk Uwzględnij rzeczywisty plan wykonania przed użyciem tej opcji SET.
Permissions
Aby korzystać z SET STATISTICS XML i wyświetlać wyniki, użytkownicy muszą posiadać następujące uprawnienia:
Odpowiednie uprawnienia do wykonywania Transact-SQL instrukcji.
Uprawnienia SHOWPLAN na wszystkie bazy danych zawierające obiekty odwołane przez instrukcje Transact-SQL.
Dla Transact-SQL instrukcji, które nie generują zbiorów wyników STATISTICS XML, wymagane są jedynie odpowiednie uprawnienia do wykonania instrukcji Transact-SQL. Dla Transact-SQL instrukcji, które generują zbiory wyników XML STATISTICS, muszą się sprawdzić zarówno uprawnienia do wykonywania instrukcji Transact-SQL, jak i SHOWPLAN, w przeciwnym razie wykonanie instrukcji Transact-SQL zostaje przerwane i nie generowane są żadne informacje Showplan.
Przykłady
Dwa poniższe stwierdzenia wykorzystują ustawienia SET STATISTICS XML, aby pokazać, jak SQL Server analizuje i optymalizuje wykorzystanie indeksów w zapytaniach. Pierwsze zapytanie wykorzystuje operator porównania Equals (=) w klauzuli WHERE na kolumnie indeksowej. Drugie zapytanie używa operatora LIKE w klauzuli WHERE. To zmusza SQL Server do użycia skanowania indeksów klastrowych do znalezienia danych spełniających warunek klauzuli WHERE. Wartości w atrybutach EstimateRows i EstimatedTotalSubtreeCost są mniejsze dla pierwszego zapytania indeksowego, co wskazuje, że zostało ono przetworzone znacznie szybciej i zużywało mniej zasobów niż zapytanie nieindeksowane.
USE AdventureWorks2022;
GO
SET STATISTICS XML ON;
GO
-- First query.
SELECT BusinessEntityID
FROM HumanResources.Employee
WHERE NationalIDNumber = '509647174';
GO
-- Second query.
SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE JobTitle LIKE 'Production%';
GO
SET STATISTICS XML OFF;
GO