W SQL Server możesz użyć SET SHOWPLAN_XML
instrukcja zwracająca szczegółowe informacje o tym, jak zostanie wykonana instrukcja T-SQL, w postaci dobrze zdefiniowanego dokumentu XML.
Jest podobny do SHOWPLAN_ALL
, z wyjątkiem tego, że SHOWPLAN_ALL
zwraca swój zestaw danych wierszy, które tworzą drzewo hierarchiczne.
Możesz ustawić SHOWPLAN_XML
na ON
lub OFF
.
Kiedy SHOWPLAN_XML
jest ON
, wszystkie kolejne instrukcje T-SQL nie są wykonywane. Zamiast tego SQL Server zwraca informacje o wykonaniu instrukcji (bez jej wykonywania).
Przykład
Oto przykład do zademonstrowania.
SET SHOWPLAN_XML ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Zwróć uwagę, że SET SHOWPLAN_XML
nie można określić wewnątrz procedury składowanej i musi to być jedyna instrukcja w partii.
Otrzymany wynik może zależeć od narzędzia, którego używasz do uzyskania dostępu do SQL Server.
Kiedy uruchamiam to w Azure Data Studio, mogę klikać różne karty, aby uzyskać inny widok wyniku.
Wyniki zakładka wyświetla nieprzetworzony ciąg XML:
Kliknięcie wiersza otwiera dokument XML w nowej karcie:
Plan zapytań zakładka wyświetla graficzną reprezentację wyniku:
Najważniejsze operacje zakładka przedstawia dane w formacie tabelarycznym, który umożliwia sortowanie danych według różnych metryk:
Nie działa?
Jeśli to nie zadziała, upewnij się, że Dołącz rzeczywisty plan wykonania nie jest wybrany w SSMS. Po wybraniu SET SHOWPLAN_XML ON
nie generuje danych wyjściowych XML Showplan.
Jak to wyłączyć
Możesz go wyłączyć za pomocą SET SHOWPLAN_XML OFF
.
Gdy to zrobisz, kolejne instrukcje będą wykonywane normalnie.
SET SHOWPLAN_XML OFF;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Wynik:
Commands completed successfully. +---------+-----------+---------+-----------+-----------+ | CatId | CatName | DogId | DogName | GoodDog | |---------+-----------+---------+-----------+-----------| | 2 | Fluffy | 2 | Fluffy | 0 | +---------+-----------+---------+-----------+-----------+ (1 row affected) Commands completed successfully.
Plan wykonania w GUI
Jeśli używasz narzędzia graficznego, takiego jak SSMS lub Azure Data Studio, możesz mieć opcję skrótu do przeglądania szacowanego graficznego planu wykonania zapytania. Umożliwia to przeglądanie planu zapytania bez konieczności uruchamiania SET SHOWPLAN_XML ON
.
Aby uruchomić szacunkowy plan zapytań:
- W SSMS możesz użyć Ctrl + L aby to zrobić. Możesz też kliknąć Wyświetl szacunkowy plan wykonania lub kliknij prawym przyciskiem myszy w oknie zapytania i wybierz Wyświetl szacunkowy plan wykonania . Dzięki temu nie będziesz musiał zmieniać
SHOWPLAN_XML
włączać i wyłączać w kodzie. - W Azure Data Studio możesz kliknąć Wyjaśnij przycisk nad oknem zapytania.
Możesz także uruchomić rzeczywisty plan zapytań:
- W SSMS, w zapytaniu menu kliknij Dołącz rzeczywisty plan wykonania lub kliknij Uwzględnij rzeczywisty plan wykonania przycisk paska narzędzi.
- W Azure Data Studio przejdź do Widok> Paleta poleceń i wpisz Uruchom bieżące zapytanie z rzeczywistym planem .
Pamiętaj, że jeśli Uwzględnij rzeczywisty plan wykonania jest wybrany w SSMS, SET SHOWPLAN_XML ON
opcja nie generuje danych wyjściowych XML Showplan. Spróbuj wyczyścić Uwzględnij rzeczywisty plan wykonania przycisk przed użyciem tego SET
opcja.
Jednak uważam, że Azure Data Studio działa odwrotnie SHOWPLAN_XML ON
wydaje się zastępować Uruchom bieżące zapytanie z rzeczywistym planem opcja, chyba że uruchomię Wyjaśnij pierwszy (szacowany plan zapytania), po którym Uruchom bieżące zapytanie z rzeczywistym planem nagle działa (Rzeczywiste wiersze i Rzeczywiste egzekucje kolumny Najważniejszych operacji zakładka zwraca odpowiednie dane).
Prawdopodobnie najlepiej jest wyłączyć opcję XML Showplan przed użyciem innych metod pobierania planu zapytań.