No SQL Server, você pode usar o
SET STATISTICS PROFILE
instrução para exibir as informações de perfil para uma instrução T-SQL. STATISTICS PROFILE
funciona para consultas ad hoc, exibições e procedimentos armazenados. Quando
STATISTICS PROFILE
está definido como ON
, cada consulta executada retorna seu conjunto de resultados regular, seguido por um conjunto de resultados adicional que mostra um perfil da execução da consulta. Exemplo
Aqui está um exemplo simples para demonstrar.
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
GO
Resultado:
Isso retorna as mesmas colunas que
SHOWPLAN_ALL
retorna mais dois extras (as Linhas e Executa colunas). Essa captura de tela foi tirada quando executei essa instrução no Azure Data Studio.
Aqui está outro exemplo simples, desta vez eu executo uma instrução no mssql-cli (interface de linha de comando).
SET STATISTICS PROFILE ON;
GO
SELECT * FROM Cats;
GO
Resultado (usando saída vertical):
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.
Como desativá-lo
Para ativar
STATISTICS PROFILE
desligado, basta executá-lo novamente usando OFF
em vez de ON
:SET STATISTICS PROFILE OFF;
GO
É STATISTICS PROFILE
Descontinuado?
Embora a documentação atual não faça menção a isso,
SET STATISTICS PROFILE
parece estar programado para descontinuação em futuras versões do plano de exibição. De acordo com este antigo artigo do MSDN,
SET STATISTICS PROFILE
está programado para descontinuação em futuras versões do plano de exibição, e é recomendado que você use SET STATISTICS XML
em vez de. Além disso, a documentação atual para
SET STATISTICS XML
suporta isso:
SET STATISTICS PROFILE e SET STATISTICS XML são equivalentes um do outro. O primeiro produz saída textual; o último produz saída XML. Em versões futuras do SQL Server, as novas informações do plano de execução de consulta serão exibidas apenas por meio da instrução SET STATISTICS XML, não pela instrução SET STATISTICS PROFILE.
Portanto, provavelmente vale a pena usar
SET STATISTICS XML
em vez de SET STATISTICS PROFILE
onde possível.