No SQL Server, podemos usar set statistics profile on
para habilitar a criação de perfil para uma sessão. Em seguida, você pode executar qualquer instrução e o plano de execução correspondente será mostrado em forma de tabela. É possível salvar esse plano de formulário popular em alguma tabela para que eu possa filtrá-lo?
O exemplo deste plano de execução de formulário de tablet é assim:
A saída de
set statistics profile on
é retornada ao aplicativo cliente como um conjunto de resultados após os resultados normais da consulta (se houver). Isso pode ser capturado por um aplicativo cliente (como o SSMS em sua pergunta), mas não pelo código T-SQL.Aqui está um exemplo do PowerShell que executa a consulta
STATISTICS PROFILE ON
e insere os resultados do perfil de estatísticas em uma tabela para necessidades ad hoc.DDL para tabela de perfil de estatísticas:
A tabela que você vê é um segundo conjunto de resultados de uma consulta normal de um conjunto de resultados.
Para vê-lo, você precisa de um cliente capaz de vários conjuntos de resultados. As ferramentas padrão (SQL Server Management Studio, por exemplo) sabem reconhecer esses resultsets e mostrá-los como um "plano de execução".
Se você escrever seu próprio cliente, o plano chegará a você como um conjunto de resultados normal. Busca todos os registros da consulta, muda para o segundo conjunto de resultados e busca todos os registros de um plano. Portanto, despejá-lo em um arquivo de texto, por exemplo, seria fácil. E se necessário - você pode carregá-lo em alguma mesa.
Atualmente, não há como no T-SQL mudar para o próximo conjunto de resultados. O servidor pode produzi-los, todas as interfaces de cliente podem lê-los. Mas o servidor por si só não pode.