Tôi đã nắm bắt được một kế hoạch truy vấn thực tế cho một truy vấn cụ thể.
Sau đó, tôi đã thay đổi một số thứ xung quanh (bao gồm cập nhật số liệu thống kê) và chạy lại truy vấn cụ thể đó. Bây giờ kế hoạch truy vấn thực tế là khác nhau (có ý nghĩa).
Các truy vấn bây giờ chạy nhanh hơn rất nhiều. Tôi tò mò liệu kế hoạch thực hiện mới có liên quan gì đến điều này không, bởi vì những thay đổi khác (thay đổi thiết lập IO, cài đặt VM, khởi động lại cá thể sql, v.v.) cũng có thể gây ra sự cải thiện về hiệu suất. Để kiểm tra điều này, tôi muốn chạy truy vấn một lần nữa và thử buộc SQL Server sử dụng kế hoạch thực hiện cũ.
Câu hỏi : có cách nào để chạy lại truy vấn với kế hoạch thực hiện do người dùng cung cấp hoặc thậm chí chạy truy vấn trực tiếp từ kế hoạch đó không?
Đây là những gì tôi đã cố gắng để tìm ra điều này:
- Tôi đã tìm kiếm trong các cuốn sách chúng tôi có sẵn tại văn phòng ( Chuyên gia và Khắc phục sự cố SQL Server 2012 , Truy vấn Microsoft SQL Server 2012 );
- Google tìm kiếm, ví dụ "chạy truy vấn dựa trên kế hoạch truy vấn cụ thể"
- Tìm kiếm DBA.SE, ví dụ: "thực hiện kế hoạch truy vấn" và "chạy lại kế hoạch thực hiện"
- Và cuối cùng, một câu hỏi đã trả lời câu hỏi của tôi nhiều lần trước đó: kiểm tra cẩn thận "Câu hỏi có thể đã có câu trả lời của bạn" trước khi nhấn "Đăng câu hỏi của bạn" :-)
Vì vậy, điểm mấu chốt: điều này có thể? Nếu vậy: làm thế nào?