Làm thế nào để lấy mẫu làm việc khi cập nhật số liệu thống kê?


10

Tôi có một số bàn lớn. Tôi muốn đảm bảo số liệu thống kê của họ được cập nhật thông qua kế hoạch bảo trì hàng tuần.

Tuy nhiên, làm như vậy là mất quá nhiều thời gian.

Nếu tôi chỉ định

WITH SAMPLE 50 PERCENT

SQL Server có mẫu không:

  1. 50% trang đầu tiên
  2. mỗi trang khác
  3. hoặc một số chiến lược khác?

BOL không rõ ràng về điều này.

Câu trả lời:


16

Đối với WITH SAMPLE 50 PERCENTnó hoạt động như thể cho mỗi trang dữ liệu trong bảng SQL Server lật một đồng xu. Nếu nó hạ cánh thì nó sẽ đọc tất cả các hàng trên trang. Nếu nó hạ cánh thì nó không đọc.

Theo dõi UPDATE STATISTICS T WITH SAMPLE 50 PERCENTcuộc gọi trong Profiler cho thấy truy vấn sau được phát ra

SELECT StatMan([SC0], [SB0000])
FROM   (SELECT TOP 100 PERCENT [SC0],
                               step_direction([SC0]) OVER (ORDER BY NULL) AS [SB0000]
        FROM   (SELECT [C] AS [SC0]
                FROM   [dbo].[T] TABLESAMPLE SYSTEM (5.000000e+001 PERCENT) 
                WITH (READUNCOMMITTED)) AS _MS_UPDSTATS_TBL_HELPER
        ORDER  BY [SC0],
                  [SB0000]) AS _MS_UPDSTATS_TBL
OPTION (MAXDOP 1) 

Với kế hoạch

nhập mô tả hình ảnh ở đây

TABLESAMPLE SYSTEM (5.000000e+001 PERCENT)chịu trách nhiệm lấy mẫu và được ghi lại ở đây

TABLESAMPLE SYSTEMtrả về tỷ lệ phần trăm xấp xỉ của các hàng và tạo giá trị ngẫu nhiên cho mỗi trang 8 KB vật lý trong bảng. Dựa trên giá trị ngẫu nhiên cho một trang và tỷ lệ phần trăm được chỉ định trong truy vấn, một trang được bao gồm trong mẫu hoặc được loại trừ. Mỗi trang được bao gồm trả về tất cả các hàng trong tập kết quả mẫu.

Các tài liệu cũng nêu

Mặc dù kế hoạch cho thấy quét bảng được thực hiện, nhưng chỉ những trang được bao gồm trong tập kết quả thực sự được yêu cầu phải đọc từ tệp dữ liệu.

Cuộc STATMANgọi này là một chức năng tổng hợp nội bộ được mô tả ngắn gọn ở đây

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.