Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Vui lòng giúp cải thiện số liệu thống kê của SQL Server!

Cách đây khá lâu, tôi đã từng xuất bản các thông báo về Connect - các bài đăng nhỏ nêu bật một số báo cáo lỗi hoặc đề xuất trên Connect mà tôi nghĩ đáng được quan tâm hơn. Bây giờ, tôi sẽ nói điều này:Tôi thực sự không phải là người hâm mộ lớn của một hệ thống mà người có nhiều bạn bè nhất sẵn sàng bỏ phiếu sẽ theo cách của họ, bởi vì nhóm SQL Server có thể bỏ qua hoặc trì hoãn tiếng ồn và tập trung vào các lỗi hoặc đề xuất quan trọng và có ảnh hưởng nhất. Nhưng đó không phải là cách họ làm ở Redmond . Vì vậy, hôm nay, tôi có một yêu cầu:hãy giúp tôi bằng cách bỏ phiếu và nhận xét về ba mục Kết nối này, tất cả đều nhằm mục đích cải thiện cách hoạt động của thống kê SQL Server.

(Lưu ý rằng các nhận xét có trọng lượng hơn nhiều so với số phiếu bầu đơn thuần, vì vậy vui lòng nêu trường hợp kinh doanh của bạn, nếu bạn có một trường hợp có thể chia sẻ được.)

Gợi ý MAXDOP để CẬP NHẬT THỐNG KÊ

SQL Server 2016 đã thêm một gợi ý MAXDOP cho các lệnh DBCC CHECK, vậy tại sao không cho các bản cập nhật thống kê? Trên các bảng được phân vùng, điều này có thể có tác động lớn đến phần còn lại của khối lượng công việc. Chúng tôi cũng có thể ghi đè MAXDOP do hệ thống xác định để cập nhật thống kê tự động, nhưng hiện tại tôi rất vui với việc kiểm soát nhiều hơn việc quản lý thống kê thủ công. Yêu cầu được ghi lại trong mục Kết nối sau:

  • Kết nối # 628971:Thêm thông số MAXDOP để cập nhật số liệu thống kê

Cho phép trình tối ưu hóa truy vấn xem thống kê cấp độ phân vùng

Erin Stellato đã viết blog về lợi ích của số liệu thống kê gia tăng ở đây, nhưng thực sự nhấn mạnh vào vấn đề của nó trong bài đăng này:Số liệu thống kê gia tăng KHÔNG được sử dụng bởi Trình tối ưu hóa truy vấn. Vui lòng đọc qua đó, sau đó bình chọn và nhận xét về mục tôi vừa tạo (Tôi không thể tin rằng tôi chưa bao giờ nhận thấy rằng DCR đã không tồn tại cho điều này):

  • Connect # 2010834:Trình tối ưu hoá thực sự nên * sử dụng * số liệu thống kê cho mỗi phân vùng

Thống kê tự động phải xem xét số lượng hàng trong chỉ mục / thống kê đã lọc

Hiện tại, việc dựa vào cập nhật tự động cho các chỉ mục và thống kê đã lọc giống như Đang chờ Godot - thuật toán sử dụng số hàng trong bảng khi xác định ngưỡng churn, không phải số hàng trong chỉ mục. Điều này có nghĩa là hầu hết các chỉ mục được lọc - và thực sự là hữu ích nhất các chỉ mục đã lọc - sẽ không bao giờ được cập nhật tự động. (Tôi nói về điều này ở đây, và Kimberly Tripp nói về nó ở đây và ở đây. Tôi chắc rằng những người khác cũng đã viết blog về nó.) Tôi nghĩ đã đến lúc điều này phải thay đổi - nếu bạn đồng ý, vui lòng bỏ phiếu và nhận xét về mặt hàng của Joe Sack (tiêu đề cho biết thống kê đã lọc, nhưng nó thực sự liên quan đến cả hai):

  • Connect # 509638:Đề xuất thay đổi đối với các bản cập nhật thống kê đã lọc

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để bỏ một bảng nếu nó tồn tại?

  2. Cách thay đổi số thứ tự của tài khoản thư cơ sở dữ liệu trong cấu hình trong SQL Server (T-SQL)

  3. Sử dụng DateTime trong SqlParameter cho thủ tục được lưu trữ, lỗi định dạng

  4. Làm cách nào để sử dụng SqlCommand để TẠO CƠ SỞ DỮ LIỆU với tên db được tham số hóa?

  5. Cách thêm HOẶC Thả cột từ bảng đã bật CDC mà không làm mất dữ liệu trong cơ sở dữ liệu SQL Server - Hướng dẫn sử dụng SQL Server