Tôi mới sử dụng SQL Server và tôi muốn điều chỉnh truy vấn đầu tiên của mình.
Trong SQL Server 20xx, sự khác biệt giữa "hiển thị kế hoạch thực hiện ước tính" và "bao gồm kế hoạch thực hiện thực tế" là gì?
Tôi mới sử dụng SQL Server và tôi muốn điều chỉnh truy vấn đầu tiên của mình.
Trong SQL Server 20xx, sự khác biệt giữa "hiển thị kế hoạch thực hiện ước tính" và "bao gồm kế hoạch thực hiện thực tế" là gì?
Câu trả lời:
Các ước tính kế hoạch thực hiện được tạo ra dựa trên số liệu thống kê mà SQL Server có - mà không thực sự thực hiện truy vấn. Trình tối ưu hóa truy vấn chỉ được hỏi xem nó có khả năng làm gì với truy vấn này, dựa trên tất cả thông tin có trong truy vấn và phân phối dữ liệu, v.v.
Điều này hoạt động tốt, truy vấn không cần chạy (có thể mất nhiều thời gian), nhưng nếu số liệu thống kê đã hết hạn, kế hoạch có thể bị sai lệch nghiêm trọng.
Các thực tế kế hoạch thực hiện việc đó là - những thực tế kế hoạch thực hiện đã được sử dụng khi thực sự chạy truy vấn. Điều này sẽ cho bạn thấy những điều có thể gợi ý về số liệu thống kê "lỗi thời", v.v. Nhưng để có được điều này, bạn phải chạy truy vấn - việc này có thể mất nhiều thời gian.
Gói dự kiến sẽ cung cấp cho bạn cách truy vấn của bạn sẽ thực thi trên máy chủ mà không thực sự chạy nó. Điều này sẽ cung cấp cho bạn ý tưởng cho dù bạn cần điều chỉnh để tạo ra một kế hoạch tốt hơn hoặc kế hoạch ước tính có vẻ ổn.
Kế hoạch thực tế cho thấy những gì thực sự đã xảy ra khi máy chủ thực hiện truy vấn. Nó bao gồm các chi tiết như số hàng thực tế từ một bảng, bao nhiêu bộ nhớ được sử dụng nếu có sắp xếp. Mức độ song song mà nó đã sử dụng trong quá trình thực thi.
Nhưng điều tốt nhất là xem xét sự khác biệt giữa "số lượng hàng ước tính" và "số lượng hàng thực tế" mà bạn có thể thấy trong kế hoạch thực hiện thực tế. Gần hơn hai giá trị này có nghĩa là các số liệu thống kê được cập nhật và đối với các số liệu thống kê đã cho thì đây là gói tốt nhất. Nhưng nếu các giá trị này có nhiều khác biệt thì có thể các số liệu thống kê không cập nhật và do đó, đây có thể không phải là kế hoạch tốt nhất. Trong trường hợp này, cập nhật số liệu thống kê sẽ giúp tạo ra kế hoạch ước tính tốt hơn và do đó kế hoạch thực tế.