Cập nhật thống kê song song


14

Trong SQL Server 2008 trở lên, là UPDATE STATISTICS WITH FULLSCANmột hoạt động đơn luồng hoặc nó có thể sử dụng song song? Làm thế nào về cập nhật thống kê với lấy mẫu mặc định - nó có thể sử dụng song song không? Tôi không thấy một tùy chọn chỉ định MAXDOPvới số liệu thống kê cập nhật.

Câu trả lời:


22

Cập nhật thống kê song song đã có sẵn kể từ SQL Server 2005. Nó được ghi lại trong bài viết của TechNet, "Số liệu thống kê được sử dụng bởi Trình tối ưu hóa truy vấn trong Microsoft SQL Server 2005" :

Điều trích

Khi thực hiện quét toàn bộ (cho dù có yêu cầu rõ ràng hay không), truy vấn nội bộ được tạo để thu thập dữ liệu có dạng chung:

SELECT
    StatMan([SC0])
FROM 
(
    SELECT TOP 100 PERCENT
        [Column] AS [SC0]
    FROM [Table] WITH (READUNCOMMITTED)
    ORDER BY [SC0]
) AS _MS_UPDSTATS_TBL
OPTION (MAXDOP 16)

Lưu MAXDOPý gợi ý ở đó (mặc dù không có cách nào để người dùng chỉ định gợi ý theo cách thủ công). Khi thu thập số liệu thống kê được lấy mẫu, truy vấn nội bộ sử dụng TABLESAMPLEmệnh đề, điều này ngăn cản sự song song. Công cụ cũng tạo ra một MAXDOP 1gợi ý về truy vấn nội bộ, đó là một chút dư thừa.

Nếu bạn cần giảm song song, MAXDOPgợi ý trong truy vấn nội bộ có thể được ghi đè bằng Resource Governor (chỉ dành cho doanh nghiệp).

SQL Server 2016 bổ sung cập nhật thống kê được lấy mẫu song song .


1

Bắt đầu từ SQL Server 2016 SP2 bạn có thể sử dụng MAXDOPtùy chọn.

Cập nhật thêm hỗ trợ cho tùy chọn MAXDOP cho các câu lệnh TẠO THỐNG KÊ và CẬP NHẬT :

Bản cập nhật này thêm hỗ trợ cho tùy chọn MAXDOP cho các câu lệnh CREATE STATISTICS và UPDATE STATISTICS trong Microsoft SQL Server 2016 và 2017. Điều này cho phép bạn ghi đè cài đặt mặc định cho mức độ song song tối đa (MAXDOP) được chỉ định ở cấp cơ sở dữ liệu hoặc máy chủ.

Lưu ý: Mức độ song song kết quả được giới hạn bởi cài đặt MAX_DOP của nhóm khối lượng công việc nếu Quản trị tài nguyên được sử dụng.

Ví dụ: giả sử rằng bảng Sales.SalesOrderDetail được sử dụng và một số thống kê đã được tạo trên đó. Trong trường hợp này, tập lệnh sau cập nhật mỗi thống kê với mức độ song song bằng 8.

UPDATE STATISTICS Sales.SalesOrderDetail WITH MAXDOP = 8

-3

CẬP NHẬT THỐNG KÊ không có bất kỳ loại song song nội bộ. Không thành vấn đề nếu bạn đang chạy với FULLSCAN hoặc SAMPLING. Tất nhiên, bạn có thể chạy một số lệnh CẬP NHẬT cùng một lúc, mỗi lệnh trên một kết nối khác nhau, thông qua nhiều công việc Tác nhân SQL hoặc một số công việc khác. Tùy thuộc vào tình huống chính xác của bạn với phần cứng và dữ liệu, bạn có thể thấy rằng chỉ cần giới thiệu lại các bảng nhanh hơn so với CẬP NHẬT THỐNG KÊ với FULLSCAN và có thể là một lựa chọn tốt hơn.


Tôi xin lỗi vì đánh dấu xuống nhưng bạn không biết bạn đang nói về cái gì. Từ whitepaper này msdn.microsoft.com/en-us/l Library / dd535534 (v = sql.100). cả bảng không phân chia và phân vùng. " Tuy nhiên tôi không thể thấy sự song song khi tôi sử dụng CẬP NHẬT THỐNG KÊ với quét toàn bộ trên bảng 30 triệu hàng
Người học SQL

Ngoài ra, stat cập nhật sẽ khóa ổn định lược đồ, vì vậy nếu bạn chạy các thống kê cập nhật khác, nó sẽ đợi cho đến khi hoàn thành trước đó.
Người học SQL

4
@SQLLearner: Không xúc phạm, nhưng bất kể tính chính xác của câu trả lời này, tại sao bạn lại hỏi câu hỏi này nếu bạn đã đọc whitepaper đó? Nó cung cấp cho bạn một câu trả lời cho tất cả mọi thứ bạn đã hỏi. Nếu bạn không thấy song song cho kịch bản cụ thể của mình, thì vui lòng chỉnh sửa câu hỏi để nêu điều đó và bất kỳ chi tiết liên quan nào khác.
Jon Seigel

Jon Seigel, đã tìm thấy và đọc whitepaper sau khi đăng câu hỏi, tuy nhiên, việc tìm kiếm trên web vẫn không chắc chắn liệu statis cập nhật có thể sử dụng song song hay không.
Người học SQL

4
Bạn đã đúng, đối với giấy trắng và sql2008. Tôi chỉ đọc tờ giấy trắng đó; thông tin trong đầu tôi đã hết hạn Tôi đã gặp nhiều vấn đề với sql2005 hoặc thậm chí là sql2000 liên quan đến việc giới thiệu lại, CẬP NHẬT THỐNG KÊ, FULLSCAN so với SAMPLE, thời gian cần thiết cho công việc và chất lượng ngẫu nhiên của dữ liệu trên các trang thống kê. Tôi đoán rằng tất cả những nỗi đau đó là nước dưới cầu bây giờ. Tôi có thể nói rằng bạn có thể chạy song song CẬP NHẬT trên các bảng khác nhau, nhưng điều đó có vẻ rắc rối hơn giá trị của nó và bạn có thể có quá nhiều tranh chấp I / O để nó đáng giá.
eo biển darin
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.