Bởi vì khi bạn sử dụng các giá trị CỐ ĐỊNH khi tắt TỰ ĐỘNG HÓA THÔNG SỐ, thì kế hoạch truy vấn biết CHÍNH XÁC giá trị nào nó cần để chạy truy vấn. Vì vậy, kế hoạch được điều chỉnh CỤ THỂ phù hợp với các giá trị đó.
Tuy nhiên khi bạn sử dụng các biến, kế hoạch sẽ được đưa vào Bộ đệm ẩn truy vấn là kế hoạch chứa các biến được tham số hóa - có thể được thay thế bằng bất kỳ biến nào và sẽ sử dụng lại cùng một kế hoạch. Do đó, các kế hoạch này sẽ phải mạnh mẽ và chung chung hơn để xử lý "trường hợp trung bình tốt nhất".
Trong SQL Server 2008, bạn có thể đặt các tham số đơn giản có được tự động tham số hóa hay không để bạn luôn có được kế hoạch "trường hợp trung bình tốt nhất" - với tất cả những điều tốt và xấu của nó.
Tham khảo:
CHỈNH SỬA - về hiệu suất
Đối với hiệu suất, trình tối ưu hóa có thể sai - trong trường hợp này, trình tối ưu hóa đã xem xét thống kê for the exact values
và cảm thấy rằng chỉ mục không hữu ích (có thể là một vấn đề về điểm tới hạn) vì vậy kế hoạch là để quét theo cụm thay thế. Việc có bắt buộc một kế hoạch truy vấn hay không - nhưng rõ ràng việc sử dụng chỉ mục sẽ nhanh hơn 50% đối với
- phần cứng cụ thể
- phân phối dữ liệu thời điểm cụ thể
- các giá trị cụ thể đã cho
Trừ khi tôi có một lý do rất chính đáng, tôi sẽ không chơi trò chơi Trình tối ưu hóa truy vấn (ví dụ:sử dụng gợi ý chỉ mục) trừ khi tôi có nhiều dữ liệu để chứng minh rằng nó sẽ luôn làm cho nó nhanh hơn.