В SQL Server можете да използвате SET STATISTICS PROFILE
оператор за показване на информацията за профила за T-SQL оператор.
STATISTICS PROFILE
работи за ad hoc заявки, изгледи и съхранени процедури.
Когато STATISTICS PROFILE
е настроен на ON
, всяка изпълнена заявка връща своя редовен набор от резултати, последван от допълнителен набор от резултати, който показва профил на изпълнението на заявката.
Пример
Ето един прост пример за демонстрация.
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Резултат:
Това връща същите колони, които SHOWPLAN_ALL
връща плюс две допълнителни (Редове и Изпълнява колони).
Тази екранна снимка беше направена, когато стартирах това изявление в Azure Data Studio.
Ето още един прост пример, този път изпълнявам изявление в mssql-cli (интерфейс на командния ред).
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats;
GO
Резултат (с помощта на вертикален изход):
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.
Как да го изключим
За да включите STATISTICS PROFILE
изключен, просто го стартирайте отново, като използвате OFF
вместо ON
:
SET STATISTICS PROFILE OFF;
GO
Е STATISTICS PROFILE
Оттеглено?
Въпреки че текущата документация не го споменава, SET STATISTICS PROFILE
изглежда е насрочено за оттегляне в бъдещи версии на showplan.
Според тази стара статия в MSDN, SET STATISTICS PROFILE
е насрочено за оттегляне в бъдещи версии на showplan и се препоръчва да използвате SET STATISTICS XML
вместо това.
Също така, текущата документация за SET STATISTICS XML
поддържа това:
SET STATISTICS PROFILE и SET STATISTICS XML са двойници един на друг. Първият произвежда текстови резултати; последният произвежда XML изход. В бъдещи версии на SQL Server информацията за новия план за изпълнение на заявка ще се показва само чрез оператора SET STATISTICS XML, а не чрез оператора SET STATISTICS PROFILE.
Следователно вероятно си струва да използвате SET STATISTICS XML
вместо SET STATISTICS PROFILE
където е възможно.