Kế hoạch truy vấn thay đổi hiệu suất tệ hơn trong SQL Server 2014


10

Gần đây chúng tôi đã nâng cấp máy chủ của mình từ SQL Server 2008R2 lên SQL Server 2014. Chúng tôi có một truy vấn chạy tốt trong 2008R2 nhưng bây giờ trong năm 2014 chạy chậm hơn rất nhiều và có kế hoạch thực hiện tồi.

Tôi đã thực hiện một số thử nghiệm ...

  1. Chuyển DB 2014 trở lại chế độ tương thích 2008/2012.
  2. Kiểm tra truy vấn bằng cách sử dụng Pagination.

Cả hai đều dẫn đến truy vấn chạy giống như đã làm và nhanh như SQL Server 2008R2.

Tại sao kế hoạch quá tệ và truy vấn chạy quá lâu trong SQL Server 2014?

Dự kiến ​​thực tế

Hình ảnh này hiển thị 2 truy vấn, một truy vấn sử dụng số lần chạy trong năm 2008R2 và sau đó, lần thứ hai là sửa lỗi với phân trang. Cả hai đều chạy vào năm 2014, cả hai đều rất khác nhau, nhưng năm 2008 chúng ta thấy hiệu suất tương tự như khi chúng ta sử dụng phân trang vào năm 2014.

Câu trả lời:


7

Đây không phải là một vấn đề, nó là do thiết kế và được coi là một cải tiến hiệu suất.

Nếu các truy vấn của bạn không chạy như mong đợi, bạn sẽ cần giải quyết vấn đề này trong mã cơ sở dữ liệu / ứng dụng của bạn.

Bạn có thể buộc công cụ ước tính xác thịt cũ bằng cách sử dụng cờ theo dõi 9481 ở cấp độ máy chủ, phiên hoặc truy vấn (sử dụng OPTION (QUERYTRACEON 9481)). Điều này sẽ buộc nó bất kể mức độ tương thích của cơ sở dữ liệu là gì.

Ngoài ra còn có rất nhiều thông tin mà Nhóm CSS đăng ở đây .

Một bài viết chi tiết hơn về Công cụ ước tính Cardanility và những thay đổi xung quanh quá trình đó trong SQL Server 2014, bao gồm ví dụ.


Nghe có vẻ như một cái cớ tệ hại cho một cái gì đó đã đi sai
dvdmn
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.