2011-09-19 53 views
9

Có cách nào để chỉ hiển thị các mục lớn hơn 1% của lô không?Kế hoạch thực hiện SQL Server: lọc để hiển thị tắc nghẽn?

Tôi đang cố gắng tìm các tắc nghẽn trong proc, nó chứa các vòng lặp và logic khác và 99% kế hoạch thực hiện kết quả mà tôi không quan tâm, nhưng thật khó để cuộn qua trong Management Studio và thực sự tìm thấy các phần làm chậm nó xuống.

Trả lời

12

Bạn đã xem SQL Sentry Plan Explorer chưa? Đây là một công cụ miễn phí 100% có thể tích hợp với Management Studio và cung cấp sự rõ ràng hơn nhiều khi phân tích kế hoạch. Một ví dụ rất nhanh chóng cho thấy làm thế nào bạn có thể nhanh chóng tập trung vào các nút đắt nhất (s) trong bất kỳ kế hoạch đồ họa:

enter image description here

Download:

http://sqlsentry.net/plan-explorer/sql-server-query-view.asp

Một bài viết trên blog gần đây tôi đã viết, theo nhu cầu phổ biến, để giúp người khác minh họa các kế hoạch thực hiện dễ dàng hơn bao nhiêu có thể với Plan Explorer:

http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/13/a-demo-kit-for-sql-sentry-plan-explorer.aspx

Mỗi câu hỏi thực tế của bạn, nó không ẩn bất kỳ hoạt động thấp hoặc chi phí nào từ kế hoạch, nhưng nó làm nổi bật các nút đắt đỏ, cam và vàng; chúng tôi cũng làm nổi bật tra cứu và quét và bạn cũng có thể hiển thị chi phí dưới dạng% bởi CPU + I/O, CPU một mình hoặc I/O (trong SSMS bạn chỉ có thể sử dụng kết hợp). Nhiều vấn đề về hiệu suất mà bạn đang tìm kiếm ở phía trước và trung tâm hoặc trên một trong các tab chi tiết, thay vì ẩn đi trong bảng Thuộc tính, chú giải công cụ kỳ quặc hoặc không hiển thị gì cả. Ngoài các cải tiến cho kế hoạch đồ họa, bạn cũng có thể tập trung vào các câu lệnh cụ thể xảy ra trong một vòng lặp (với rất nhiều câu lệnh có liên quan nhưng chi phí thấp hơn) bằng cách sắp xếp trong nút Statements Tree. Sự khác biệt về hàng ước tính so với hàng thực tế (đối với các kế hoạch thực tế) có thể làm nổi bật các vấn đề thống kê tiềm ẩn; các cột được yêu cầu bằng tra cứu khóa có thể xác định nhanh các cột chỉ mục bị thiếu (hoặc truy vấn SELECT * không nên); và thời gian chạy so với thông số được biên dịch có thể chỉ ra các vấn đề về tham số sniffing nơi bạn có thể muốn sử dụng RECOMPILE, OPTIMIZE FOR hoặc bật "Tối ưu hóa cho khối lượng công việc đặc biệt." Cuối cùng, không giống như Management Studio, bạn có thể dễ dàng tạo số liệu thời gian chạy (thời lượng, CPU, lần đọc, v.v.) bằng cách tạo một kế hoạch thực tế trong công cụ - với các công cụ gốc bạn cần gây rối với tùy chọn SET hoặc sử dụng profiler để lấy các chỉ số này - và thậm chí với những người bạn phải giảm giá công việc liên quan đến việc nhận kết quả cho khách hàng (Plan Explorer chạy truy vấn trên máy chủ nhưng loại bỏ kết quả).

+0

+1 cho đề xuất công cụ. – Icarus

1

Tôi vừa tải xuống phiên bản mới nhất của SSMS Tools Pack Addin hôm nay và nhận thấy rằng điều này hiện có một số chức năng mới cũng có thể hỗ trợ trong lĩnh vực này.

Về cơ bản bạn có thể định cấu hình phần trăm và số liệu (ví dụ: chi phí ước tính tổng thể hoặc chi phí IO ước tính) và các toán tử vượt quá ngưỡng này được liệt kê ở bên trái của kế hoạch theo thứ tự chi phí và có thể được nhấp vào để điều hướng đến nhà điều hành.

Screenshot

Xem Execution Plan Analyser ảnh chụp màn hình cho một ý tưởng tốt hơn.

Các vấn đề liên quan