Mức độ nghiêm trọng 17 cho thấy SQL Server đã hết tài nguyên cần thiết. Bạn thường thấy điều này khi cơ sở dữ liệu hết dung lượng. Trong trường hợp này, có vẻ như tempdb đang được sử dụng để đọc các hàng phiên bản cách ly ảnh chụp nhanh đã cam kết cho một truy vấn cần phải đổ vào tempdb.
Điều này có thể khá phổ biến nếu tempdb có kích thước tối đa hạn chế và một truy vấn được viết kém được thử, ví dụ, thực hiện một phép nối chéo rất lớn.
Bạn có thể sử dụng truy vấn này để xem kích thước hiện tại của cửa hàng phiên bản trong tempdb:
SELECT *
FROM sys.dm_os_performance_counters dopc
WHERE dopc.counter_name LIKE 'Version %';
Technet có một bài viết thú vị về việc sử dụng cửa hàng phiên bản tại https://technet.microsoft.com/en-us/l Library / cc966545.aspx#EDAA
Trang MSDN này đề cập đến lỗi 3967:
Khi tempdb hết dung lượng, Cơ sở dữ liệu sẽ buộc các cửa hàng phiên bản thu nhỏ lại. Trong quá trình thu hẹp, các giao dịch chạy dài nhất chưa tạo phiên bản hàng được đánh dấu là nạn nhân. Một thông báo 3967 được tạo ra trong nhật ký lỗi cho mỗi giao dịch nạn nhân. Nếu một giao dịch được đánh dấu là nạn nhân, nó không thể đọc các phiên bản hàng trong cửa hàng phiên bản nữa. Khi nó cố đọc các phiên bản hàng, thông báo 3966 được tạo và giao dịch được khôi phục. Nếu quá trình thu hẹp thành công, không gian sẽ có sẵn trong tempdb.
Cả hai trang tôi đã liên kết ở trên đều có lời khuyên rõ ràng về kích thước tối đa của cửa hàng phiên bản trong tempdb, điều này khiến tôi tin rằng giới hạn duy nhất là kích thước được cấu hình tối đa của chính tempdb, trừ bất kỳ không gian nào đang được sử dụng trong tempdb cho các đối tượng khác.