Başka bir SQL sunucu sorusu: Sayaçlar sıfırlandığından beri bana en çok CPU yoğun SQL veren basit bir sorgu var:
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
Soru 1: Tam olarak nedir plan_handle? Oracle'da olduğu gibi planın bir karması gibi görünmüyor. Soruyorum çünkü bir cümle planının değiştiği durumu tespit edebilmek istiyorum.
Soru 2: Bir plan_handle'ım olduğunda, gerçek planla ilgileniyorum. Ben de öyle, örneğin:
select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)
Query_plan sütununda, tıkladığımda bir XML belgesi görüntüleyen bir bağlantı alıyorum. Diske whatever.sqlplan olarak kaydedersem, Windows'ta çift tıklayabilirim ve Management Studio'da doğru bir şekilde görüntülenir. Elbette bu adımı atlatmanın bir yolu olmalı mı ?!
Soru 3: XML'i SET SHOWPLAN_TEXT'in eski günlerinde olduğu gibi tekrar metin biçimine dönüştürmenin bir yolu var mı? Onları grafiksel olarak görebilmek istiyorum ama aynı zamanda anlamlı bir şekilde farklılaştırmayı otomatikleştiriyorum.
Teşekkürler!
<ShowPlanXML xmlns="http://schemas.microsoft.com...ama hala doğrudan göstermenin bir yolu yok - önce diske bir.sqlplandosya olarak kaydetmem gerekiyor . Tuhaf. Teşekkürler tho ':)