Outra pergunta do servidor SQL: Eu tenho uma consulta simples que fornece o SQL com mais uso intensivo de CPU desde que os contadores foram redefinidos:
select top 10
sum(qs.total_worker_time) as total_cpu_time,
sum(qs.execution_count) as total_execution_count,
qs.plan_handle, st.text
from
sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.plan_handle) as st
group by qs.plan_handle, st.text
order by sum(qs.total_worker_time) desc
Pergunta 1: O que exatamente é o plan_handle
? Não parece ser um hash do plano, como é no Oracle. Eu pergunto, porque quero ser capaz de detectar a situação na qual o plano de uma declaração tem alterações.
Pergunta 2: Depois de ter um plan_handle, estou interessado no plano real. Então eu faço, por exemplo:
select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)
Na coluna query_plan, recebo um link que, ao clicar, exibe um documento XML. Se eu salvá-lo no disco como o que seja. Sqlplan, posso clicar duas vezes no Windows e ele é exibido corretamente no Management Studio. Certamente deve haver uma maneira de evitar esse passo ?!
Pergunta 3: Existe uma maneira de converter o XML novamente em um formato de texto, como nos velhos tempos de SET SHOWPLAN_TEXT? Quero poder visualizá-los graficamente, mas também automatizá-los de alguma maneira significativa.
Obrigado!
fonte
<ShowPlanXML xmlns="http://schemas.microsoft.com...
mas ainda não há como exibi-lo diretamente - preciso primeiro salvá-lo no disco como um.sqlplan
arquivo. Esquisito. Obrigado tho ':)