Server Management Studio에서 쿼리 계획 표시


9

또 다른 SQL 서버 질문 : 카운터가 재설정 된 후 CPU를 많이 사용하는 SQL을 제공하는 간단한 쿼리가 있습니다.

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

질문 1 : 정확히 무엇입니까 plan_handle? 오라클과 마찬가지로 계획의 해시 인 것처럼 보이지 않습니다. 성명서 계획이 변경되는 상황을 감지 할 수 있기를 바랍니다.

질문 2 : plan_handle이 있으면 실제 계획에 관심이 있습니다. 예를 들어,

select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)

query_plan 열에는 클릭하면 XML 문서가 표시되는 링크가 있습니다. 디스크에 whatever.sqlplan으로 저장하면 Windows에서 두 번 클릭하면 Management Studio에 올바르게 표시됩니다. 이 단계를 피할 수있는 방법이 반드시 있어야합니까?!

질문 3 : SET SHOWPLAN_TEXT와 같이 XML을 텍스트 형식으로 다시 변환하는 방법이 있습니까? 그래픽으로 볼 수 있기를 원하지만 의미있는 방식으로 확산하는 것을 자동화하고 싶습니다.

감사!

답변:


7

Wrox Press의 SQL Server 2008 내부 및 문제 해결 책에서 다음 팁을 찾았습니다.

SQL 2005 Server에 연결된 SQL 2008 SSMS를 사용하는 경우 XML 쿼리 계획을 클릭하면 그래픽 쿼리 계획이 자동으로로드됩니다.

같은 책에서 다음 쿼리를 사용하여 작동하는지 확인했습니다.

select session_id, text, query_plan
from sys.dm_exec_requests
cross apply sys.dm_exec_sql_text(sql_handle)
cross apply sys.dm_exec_query_plan(plan_handle)

또한 아직 보지 않았다면 SQL Sentry의 무료 Plan Explorer를 확인하십시오. 먼저 XML을 디스크에 .sqlplan으로 저장해야하지만 SQL 실행 계획을보다 쉽게 ​​사용할 수 있습니다. 누군가 언젠가는 Visual Execution Plan Diff 도구를 사용할 수 있기를 바랍니다. :디


9

A1 : plan_handle은 문장 그룹 또는 배치에 대한 해시입니다.

대답 2 : 아니요, dm_exec_query_plan은 쿼리 계획을 XML 형식으로 반환하므로 그래프를 보려면 해당 계획을 클릭해야합니다.

A3. 이 시도:

SELECT query_plan 
FROM sys.dm_exec_text_query_plan (0x06000100A27E7C1FA821B10600,0,-1);

1
다시 돌아가 <ShowPlanXML xmlns="http://schemas.microsoft.com...지만 여전히 직접 표시 할 방법이 없습니다 .sqlplan. 먼저 디스크에 파일로 파일 을 저장해야합니다 . 기묘한. 감사합니다 tho ':)
Gaius
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.