KB4051359 - KHẮC PHỤC: SQL Server hết bộ nhớ khi tham số có giá trị bảng được ghi lại trong các phiên Sự kiện Mở rộng ở SQL Server 2016 ngay cả khi câu lệnh thu thập hoặc dòng dữ liệu chưa được bật

Áp dụng cho
SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Triệu chứng

Giả sử bạn tạo phiên Sự kiện Mở rộng hoặc Theo dõi Trình hồ sơ SQL ghi lại sự kiện rpc_starting hoặc sự kiện rpc_completed trong Microsoft SQL Server 2016 và câu lệnh thu thập hoặc dòng dữ liệu không được bật (bạn đã không đặt tham số collect_statement hoặc collect_data_stream cho phiên Xevents hoặc tham số Dữ liệu Văn bản hoặc Dữ liệu Nhị phân cho Trình phân tích SQL). Nếu hoạt động SQL Server liên quan đến tham số có giá trị bảng (TVP) được ghi lại trong phiên, mức sử dụng bộ nhớ của SQL Server có thể tăng nhiều hơn mức cần thiết. Điều đó có thể gây ra hiện tượng chậm dữ dội nghiêm trọng, trong trường hợp nghiêm trọng, làm cạn kiệt bộ nhớ SQL Server và bạn nhận được thông báo lỗi 701 khó khăn sau đây cho các hoạt động đang diễn ra:

Lưu ý

Không có đủ bộ nhớ hệ thống trong nhóm tài nguyên 'mặc định' để chạy truy vấn này

Lưu ý: Nếu bạn sử dụng DBCC MEMORYSTATUS hoặc sys.dm_os_memory_clerks truy vấn, bạn có thể thấy thư ký bộ nhớ OBJECTSTORE_LBSS hiển thị mức tiêu thụ bộ nhớ lớn.

Giải pháp

Sự cố trong đó phiên sự kiện mở rộng hoặc theo dõi trình phân tích không được đặt cấu hình để thu thập câu lệnh hoặc luồng dữ liệu vẫn yêu cầu bộ đệm bộ nhớ lớn vì tài liệu TVP được khắc phục trong bản sửa lỗi này.

Lưu ý Nếu phiên sự kiện mở rộng hoặc quy trình dõi vết SQL Profiler của bạn được đặt cấu hình để thu thập câu lệnh hoặc dữ liệu/luồng nhị phân và hoạt động SQL Server liên quan đến TVP được ghi lại trong phiên này, mức sử dụng bộ nhớ của SQL Server vẫn có thể tăng ngay cả khi đã áp dụng bản sửa lỗi hiện tại, vì trong trường hợp này, mức tiêu thụ bộ nhớ là cần thiết để xử lý luồng TVP trong theo dõi và hoàn toàn được mong đợi.

Do đó, chúng tôi khuyên bạn không nên chạy phiên hoặc theo dõi vĩnh viễn với các tổ hợp sự kiện và trường dữ liệu đã đề cập ở trên các phiên bản SQL Server có khả năng nhận các hoạt động dựa trên TVP chuyên sâu (về số lượng hoặc kích thước).

Gói dịch vụ cho SQL Server:

Bản sửa lỗi này có trong Gói Dịch vụ 2 cho SQL Server 2016.

Lưu ý: Để biết một bản sửa lỗi khác giới hạn số hàng theo dõi trong TVP, vui lòng tham khảo KB 4468102.

Giới thiệu về bản dựng SQL Server 2016

Mỗi bản dựng mới cho SQL Server 2016 đều chứa tất cả các bản sửa lỗi nóng và bản sửa lỗi bảo mật trong bản dựng trước đó. Chúng tôi khuyên bạn nên cài đặt bản dựng mới nhất cho SQL Server 2016.

Trạng thái

Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".

Tham khảo

Tìm hiểu về thuật ngữ mà Microsoft dùng để mô tả các bản cập nhật phần mềm.