Sự cố truy vấn StatMan cực kỳ chậm với trang trại # SP2010


7

Vấn đề tôi gặp phải được giải thích trong một bài đăng trên blog mà tôi đã tạo cho vấn đề này (dễ tham khảo và quản lý các phản hồi / giải pháp ở 1 vị trí) có thể tìm thấy ở đây: http://schoennie.blogspot.com/ 2013/09 / Slow-statman-query-vấn đề-với-sp2010.html

Tóm tắt ngắn gọn là bản cài đặt máy chủ duy nhất của SharePoint 2010 trên SQL 2008R2 (cùng một máy chủ) đang gặp phản hồi chậm RẤT cho mỗi lần tải lên đầu tiên trong một khoảng thời gian nhất định (dường như là vào mỗi buổi sáng). Việc phân tích các hoạt động SQL đã tiết lộ với tôi rằng khi bạn bắt đầu tải lên, truy vấn này sẽ được thực thi trước khi phần chèn vào phần cứng của bản tải lên:

SELECT StatMan([SC0], [LC0])
FROM   (SELECT TOP 100 PERCENT CONVERT(VARBINARY, 
                                        SUBSTRING ([Content], 1, 100) + 
                                        +SUBSTRING([Content], CASE
                                                                WHEN LEN([Content]) <= 200 THEN 101
                                                                ELSE LEN([Content]) - 99
                                                            END, 100)) AS [SC0],
                                        DATALENGTH([Content])   AS [LC0]
        FROM   [dbo].[AllDocStreams] WITH (READUNCOMMITTED)
        ORDER  BY [SC0]) AS _MS_UPDSTATS_TBL 

Tôi đã dành vài ngày để cố gắng có thêm thông tin về truy vấn Statman này và lý do tại sao nó khiến cho đĩa i / o đi qua mái nhà và Độ dài hàng đợi của đĩa tăng lên trên 5 giá trị (thường là khoảng 0,01)

Hãy chia sẻ suy nghĩ của bạn về điều này hoặc có thể chỉ cho tôi một hướng / tài nguyên nhất định? Tôi tham gia với tư cách là SharePoint Consulting & DBA trong không gian phần mềm này khoảng 8 năm nay, nhưng tôi chưa thấy điều gì như thế này!

Cảm ơn rất nhiều trước, Jeroen


Đây trông giống như một bản cập nhật thống kê tự động và nó đang quét nội dung của tất cả các tài liệu bạn có trong SharePoint. Không ngạc nhiên khi điều này là đắt tiền! Cách khắc phục nhanh sẽ là bật cập nhật thống kê không đồng bộ, sẽ bỏ chặn quá trình chèn và thực hiện cập nhật thống kê trong nền. Nhìn vào cơ sở dữ liệu SharePoint của chúng tôi (tôi không phải là chuyên gia về điều đó), tôi không thấy bất kỳ số liệu thống kê nào trên cột này, nhưng chúng tôi không sử dụng rộng rãi các tài liệu (<2.000 hàng trong bảng của chúng tôi). Chỉnh sửa: chúng tôi đang sử dụng SP 2007
Jon Seigel

Cảm ơn những suy nghĩ của bạn Jon! Vấn đề với các số liệu thống kê trên SharePoint (2010) là có một công việc hẹn giờ chịu trách nhiệm tạo các số liệu thống kê. Công việc hẹn giờ này được điều hành bởi SharePoint và do đó theo mặc định, SQL Tạo tự động thống kê bị tắt. Microsoft khuyến cáo không thay đổi cài đặt này. Tuy nhiên, có một vấn đề với thiết lập này, khi có một quá trình khác đang chạy (ví dụ như sao lưu), công việc hẹn giờ không chạy và sẽ không có số liệu thống kê mới. Trong trường hợp của tôi, tôi đã chạy số liệu thống kê tạo thủ công và vấn đề vẫn còn đó .. Tôi sẽ xem xét async! Cảm ơn!
Jeroen Schoenmakers

Khi kiểm tra cài đặt và đọc các bản cập nhật thống kê async, tôi thấy rằng cài đặt cơ sở dữ liệu nội dung được thay đổi thành auto_create_statistic = True .. đây là cài đặt không được đề xuất và có thể gây ra toàn bộ sự cố. Tôi đã thay đổi nó trở lại và sẽ theo dõi để xem liệu điều này có giải quyết được vấn đề truy vấn statman hay không (trước đây mất hơn 18 phút để hoàn thành!)
Jeroen Schoenmakers

Tôi không có cơ sở dữ liệu SP 2010 để xem xét, nhưng tôi thực sự đặt câu hỏi tại sao lại cần thống kê trên cột này, bởi vì đó là cột blob. Tôi cho rằng điều đó sẽ không làm tôi ngạc nhiên nếu SharePoint đang làm điều gì đó điên rồ như so sánh cột đó với thứ gì đó trong phạm vi quét. Ừ
Jon Seigel

Xin chào Jon, cảm ơn một lần nữa cho những suy nghĩ của bạn. Tôi đã thử lại sáng nay và dường như nó đã được giải quyết vì tôi đã tắt cấu hình thống kê tự động trên cơ sở dữ liệu nội dung. Không chỉ có BLOBS trong bảng all_docs, còn có một loạt siêu dữ liệu, v.v ... Tôi thực sự hy vọng nó được giải quyết ngay bây giờ, sẽ giám sát chặt chẽ trong phần còn lại của tuần! Có một cái tốt, Jeroen
Jeroen Schoenmakers

Câu trả lời:


5

Đây là SQL Server cập nhật số liệu thống kê trên bảng. Nó có thể được kích hoạt tự động khi khoảng 20% ​​dữ liệu trong bảng của bạn thay đổi hoặc theo yêu cầu nếu bạn chạy các công việc cập nhật số liệu thống kê.

Bạn có một vài cách để giảm bớt nỗi đau.

Bạn có thể bật cập nhật thống kê không đồng bộ , cho phép SQL Server cập nhật số liệu thống kê phía sau hậu trường mà không chặn các truy vấn khác. Tuy nhiên, nó vẫn sẽ có tác động về hiệu suất, như Kendra Little giải thích trong Vụ nổ IO bí mật .

Bạn có thể tự cập nhật số liệu thống kê trong các cửa sổ bảo trì. Điều này không ngăn chặn khả năng 20% ​​dữ liệu của bạn sẽ thay đổi, nhưng nó chỉ làm giảm khả năng.

Bạn có thể vô hiệu hóa cập nhật tự động các số liệu thống kê hoàn toàn. Đây thường là một ý tưởng khá tệ vì kế hoạch thực hiện của bạn có thể cực kỳ không chính xác và nó cũng không ngăn mọi người cập nhật số liệu thống kê theo cách thủ công.

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.