Otra pregunta del servidor SQL: tengo una consulta simple que me da el SQL más intensivo de CPU desde que se restablecieron los contadores:
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) descPregunta 1: ¿Qué es exactamente el plan_handle? No parece ser un hash del plan, como lo es en Oracle. Pregunto porque quiero poder detectar la situación en la que el plan de una declaración tiene cambios.
Pregunta 2: Una vez que tengo un plan_handle, estoy interesado en el plan real. Así lo hago, por ejemplo:
select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)En la columna query_plan obtengo un enlace que cuando hago clic muestra un documento XML. Si lo guardo en el disco como whatever.sqlplan, puedo hacer doble clic en Windows y se muestra correctamente en Management Studio. ¿Seguramente debe haber una manera de evitar este paso?
Pregunta 3: ¿Hay alguna forma de volver a convertir el XML a un formato de texto, como en los viejos tiempos de SET SHOWPLAN_TEXT? Quiero poder verlos gráficamente, pero también automatizar la diferenciación de alguna manera significativa.
¡Gracias!

<ShowPlanXML xmlns="http://schemas.microsoft.com...pero todavía no hay forma de mostrarlo directamente;.sqlplanprimero necesito guardarlo en el disco como un archivo. Extraño. Gracias ':)