Hiển thị các gói truy vấn trong Server Management Studio


9

Một câu hỏi khác về máy chủ SQL: Tôi có một truy vấn đơn giản cung cấp cho tôi SQL chuyên sâu nhất về CPU kể từ khi bộ đếm được đặt lại:

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

Câu 1: Chính xác thì cái plan_handlegì? Nó dường như không phải là một hàm băm của kế hoạch, giống như trong Oracle. Tôi hỏi bởi vì tôi muốn có thể phát hiện ra tình huống trong đó kế hoạch của một tuyên bố có thay đổi.

Câu hỏi 2: Khi tôi có plan_handle, tôi quan tâm đến kế hoạch thực tế. Vì vậy, tôi làm, ví dụ:

select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)

Trong cột query_plan tôi nhận được một liên kết mà khi tôi nhấp vào sẽ hiển thị một tài liệu XML. Nếu tôi lưu nó trên đĩa dưới dạng any.sqlplan, tôi có thể nhấp đúp vào nó trong Windows và nó sẽ hiển thị chính xác trong Management Studio. Chắc chắn phải có cách tránh bước này?!

Câu hỏi 3: Có cách nào để chuyển đổi lại XML thành định dạng văn bản, như trong những ngày xưa của SET SHOWPLAN_TEXT không? Tôi muốn có thể xem chúng bằng đồ họa, nhưng cũng tự động hóa việc phân biệt chúng theo một cách có ý nghĩa nào đó.

Cảm ơn!

Câu trả lời:


7

Tôi đã tìm thấy mẹo sau trong cuốn sách Xử lý sự cố và khắc phục sự cố SQL Server 2008 của cuốn sách của Digitx:

Nếu bạn sử dụng SQL 2008 SSMS được kết nối với Máy chủ SQL 2005, khi bạn nhấp vào kế hoạch truy vấn XML, nó sẽ tự động tải kế hoạch truy vấn đồ họa cho bạn.

Tôi đã xác minh nó hoạt động bằng cách sử dụng truy vấn sau từ cùng một cuốn sách:

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)

Ngoài ra, nếu bạn chưa xem nó, hãy xem Plan Explorer miễn phí của SQL Sentry. Trước tiên, bạn sẽ phải lưu XML vào đĩa dưới dạng .sqlplan, nhưng nó cung cấp một khung nhìn dễ sử dụng hơn cho Kế hoạch thực thi SQL. Hy vọng ai đó sẽ đưa ra một công cụ Diff Ex Plan Plan thực hiện một ngày nào đó. : D


9

A1: Plan_handle là hàm băm cho một nhóm các câu lệnh hoặc lô.

A2: Không, dm_exec_query_plan trả về kế hoạch truy vấn theo định dạng XML, vì vậy bạn cần nhấp vào đó để xem biểu đồ.

A3. Thử đi:

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

1
Tôi quay lại <ShowPlanXML xmlns="http://schemas.microsoft.com...nhưng vẫn không có cách nào để hiển thị trực tiếp - trước tiên tôi cần lưu nó vào đĩa dưới dạng .sqlplantệp. Kỳ dị. Cảm ơn tho ':)
Gaius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.