Tự động cập nhật thống kê Thời lượng và gián đoạn


7

Sản phẩm SQL Server 2008 R2 của chúng tôi đôi khi bắt đầu thực hiện chậm: tất cả các truy vấn bắt đầu hoạt động quá chậm (và đôi khi tất cả các truy vấn chỉ bị treo và chờ đợi một cái gì đó sau đó tiếp tục). Điều này thường kéo dài vài phút.

Tôi đã đọc rằng đôi khi thống kê cập nhật tự động có thể làm chậm máy chủ:

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

Tôi thấy rằng đôi khi thống kê cập nhật tự động xảy ra đối với các chỉ mục khá lớn (kích thước 1,7 GB, bảng 5,5M hàng). Tôi có thể xem ngày cập nhật gần đây nhất cho thống kê qua STATS_DATE, nhưng tôi không thể thấy thời lượng của quy trình này.

Bạn có thể, xin vui lòng, đề nghị làm thế nào tôi có thể xem thời lượng cập nhật tự động thống kê? Hoặc làm thế nào tôi có thể xác định rằng số liệu thống kê cập nhật tự động gây ra vấn đề?

Cảm ơn bạn.

PS Sau khi chúng tôi gặp phải những vấn đề về hiệu suất này, tôi bắt đầu theo dõi số liệu thống kê chờ. Loại chờ cao nhất là CXPACKET. Nó thay đổi từ 36% đến 60% của tất cả các chờ đợi. Và vào buổi sáng, khi ngày làm việc bắt đầu, nó có giá trị tối đa trong ngày làm việc (người dùng thường làm việc với ứng dụng 12 giờ mỗi ngày). Loại chờ cao thứ hai là SOS_SCHEDULER_YIELD (15% -20%).
Tôi đã tìm thấy một số bài đăng trên Internet nơi nó đề cập rằng thời gian chờ đợi của CXPACKET cho thấy rằng số liệu thống kê cập nhật tự động gây ra sự cố. Nhưng tôi đã không tìm thấy bằng chứng thực sự của những tuyên bố như vậy. Rõ ràng với tôi rằng CXPACKET có thể hiển thị các vấn đề khi thực hiện song song các truy vấn SQL (từ http://www.dbadiaries.com/reducing-sql-server-cxpacket-wait-type ).


Để xác định rằng số liệu thống kê cập nhật tự động gây ra sự cố, bạn đã kiểm tra Chỉ số Chờ trên máy chủ chưa?
Kin Shah

Tôi đã chỉnh sửa bài đăng của mình (Tôi đã thêm phần PS)
Victor

Câu trả lời:


7

Bạn có thể lấy dữ liệu này bằng Lớp sự kiện thống kê tự động với SQL Trace. Một trong những cột dữ liệu của sự kiện là Thời lượng . Theo tài liệu BOL được tham chiếu ở trên, đây là một trích dẫn:

Thời lượng : Lượng thời gian (tính bằng micro giây) được thực hiện bởi sự kiện.

Điều đó sẽ cung cấp cho bạn một ý tưởng khá hay khi / mất bao lâu số liệu thống kê tự động. Nếu bạn đang thấy rất nhiều số liệu thống kê cập nhật tự động tạm dừng hiệu suất (đồng bộ), bạn có thể xem xét sử dụng số liệu thống kê cập nhật tự động không đồng bộ. Bật tính năng này sẽ cho trình tối ưu hóa truy vấn không chờ cập nhật số liệu thống kê để tiếp tục biên dịch truy vấn. Đây là một giải pháp để ngăn chặn sự can thiệp trực tiếp của các cập nhật thống kê, nhưng tất nhiên bạn đang hy sinh số liệu thống kê mới cho việc biên dịch truy vấn cụ thể đó.

Để biết thêm thông tin về điều này, vui lòng xem tài liệu tham khảo MSDN về Thống kê .

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.