Có một lý do để cập nhật số liệu thống kê bằng tay?


19

Trong SQL Server, số liệu thống kê được cập nhật tự động khi Auto Update Statisticsở trong True(đó là mặc định). Có một lý do để cập nhật số liệu thống kê bằng tay và trong hoàn cảnh nào?

Câu trả lời:


21

Chắc chắn, nếu dữ liệu của bạn thay đổi thường xuyên hơn tỷ lệ thống kê tự động (hoặc giả sử, bạn đang cập nhật <20% số hàng thường xuyên, như cập nhật trạng thái hoặc tem ngày / giờ). Hoặc nếu bảng của bạn rất lớn và nó không thay đổi đủ để kích hoạt cập nhật thống kê tự động. Hoặc nếu bạn đã lọc các chỉ mục ( vì ngưỡng thống kê tự động vẫn dựa trên% thay đổi trên toàn bộ bảng, chứ không phải% thay đổi của tập hợp con của các hàng trong chỉ mục được lọc ).


+1 cho các chỉ mục được lọc. Tôi nghĩ đó là lý do chính, hoặc trên RẤT NHIỀU tập dữ liệu lớn. Tôi có các bảng mà tôi chèn 30 triệu hàng mỗi tháng, nhưng đó là một tỷ lệ nhỏ để các số liệu thống kê thường không được cập nhật trừ khi tôi khởi động thủ công.
JNK

+1 Ngoài ra, bạn thực hiện theo lịch trình để đặt lại bộ đếm, có nghĩa là ít cơ hội hơn bên ngoài cửa sổ bảo trì của bạn.
gbn

7

Một vài lý do nữa (hời hợt):

Thống kê tự động cập nhật sẽ chặn truy vấn kích hoạt cập nhật cho đến khi thống kê mới sẵn sàng.

... Trừ khi bạn cũng kích hoạt thống kê tự động cập nhật không đồng bộ. Sau đó, truy vấn kích hoạt bản cập nhật sẽ không đợi số liệu thống kê mới, nhưng có khả năng sẽ chạy với số liệu thống kê cũ, không chính xác.

Tôi cũng gặp phải một số vấn đề chặn lạ khi cơ sở dữ liệu với một số bảng tương đối lớn (hàng 44M, 8,5 GB) sẽ bắt đầu cập nhật số liệu thống kê. Chúng tôi đã ngừng sử dụng ứng dụng đó trước khi tôi có thể thực sự theo dõi những gì đang diễn ra.


1
+1 Đó là một điểm tuyệt vời về việc chặn và tùy chọn không đồng bộ.
Aaron Bertrand

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.