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.