W SQL Server możesz użyć SET STATISTICS PROFILE
instrukcja, aby wyświetlić informacje o profilu dla instrukcji T-SQL.
STATISTICS PROFILE
działa dla zapytań ad hoc, widoków i procedur składowanych.
Gdy STATISTICS PROFILE
jest ustawiony na ON
, każde wykonane zapytanie zwraca swój zwykły zestaw wyników, po którym następuje dodatkowy zestaw wyników, który pokazuje profil wykonania zapytania.
Przykład
Oto prosty przykład do zademonstrowania.
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Wynik:
Zwraca te same kolumny, które SHOWPLAN_ALL
zwraca plus dwa dodatkowe (Wiersze i Wykonaj kolumny).
Ten zrzut ekranu został zrobiony, gdy uruchomiłem tę instrukcję w Azure Data Studio.
Oto kolejny prosty przykład, tym razem uruchamiam instrukcję w mssql-cli (interfejs wiersza poleceń).
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats;
GO
Wynik (przy użyciu wyjścia pionowego):
Commands completed successfully. +---------+-----------+ | CatId | CatName | |---------+-----------| | 1 | Meow | | 2 | Fluffy | | 3 | Scratch | +---------+-----------+ (3 rows affected) -[ RECORD 1 ]------------------------- Rows | 3 Executes | 1 StmtText | SELECT * FROM Cats StmtId | 1 NodeId | 1 Parent | 0 PhysicalOp | NULL LogicalOp | NULL Argument | NULL DefinedValues | NULL EstimateRows | 3 EstimateIO | NULL EstimateCPU | NULL AvgRowSize | NULL TotalSubtreeCost | 0.0032853 OutputList | NULL Warnings | NULL Type | SELECT Parallel | 0 EstimateExecutions | NULL -[ RECORD 2 ]------------------------- Rows | 3 Executes | 1 StmtText | |--Clustered Index Scan(OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F])) StmtId | 1 NodeId | 2 Parent | 1 PhysicalOp | Clustered Index Scan LogicalOp | Clustered Index Scan Argument | OBJECT:([Test].[dbo].[Cats].[PK__Cats__6A1C8AFAB3EF1A8F]) DefinedValues | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName] EstimateRows | 3 EstimateIO | 0.003125 EstimateCPU | 0.0001603 AvgRowSize | 142 TotalSubtreeCost | 0.0032853 OutputList | [Test].[dbo].[Cats].[CatId], [Test].[dbo].[Cats].[CatName] Warnings | NULL Type | PLAN_ROW Parallel | 0 EstimateExecutions | 1 (2 rows affected) Commands completed successfully.
Jak to wyłączyć
Aby zmienić STATISTICS PROFILE
wyłączone, po prostu uruchom go ponownie, używając OFF
zamiast ON
:
SET STATISTICS PROFILE OFF;
GO
Czy STATISTICS PROFILE
Wycofane?
Chociaż aktualna dokumentacja nie wspomina o tym, SET STATISTICS PROFILE
wydaje się być zaplanowane do wycofania w przyszłych wersjach showplanu.
Zgodnie z tym starym artykułem MSDN, SET STATISTICS PROFILE
jest zaplanowane do wycofania w przyszłych wersjach showplanu i zaleca się użycie SET STATISTICS XML
zamiast tego.
Również aktualna dokumentacja dla SET STATISTICS XML
obsługuje to:
SET STATISTICS PROFILE i SET STATISTICS XML są swoimi odpowiednikami. Pierwsza z nich produkuje tekst; ten ostatni generuje dane wyjściowe XML. W przyszłych wersjach SQL Server nowe informacje o planie wykonania zapytania będą wyświetlane tylko za pomocą instrukcji SET STATISTICS XML, a nie instrukcji SET STATISTICS PROFILE.
Dlatego prawdopodobnie opłaca się użyć SET STATISTICS XML
zamiast SET STATISTICS PROFILE
tam gdzie to możliwe.