Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn có một thủ tục được lưu trữ có chứa thủ tục được lưu trữ cho trẻ em trong Microsoft SQL Server 2012.
-
Thủ tục được lưu trữ cho trẻ em sử dụng bảng dưới dạng tham số.
-
Bạn tạo một bảng tạm thời và sau đó bạn đã chuyển nó sang thủ tục được lưu giữ cho con với tham số.
-
Thủ tục được lưu trữ con chạy một số truy vấn so với bảng tạm thời bằng cách dùng con trỏ.
Trong trường hợp này, rò rỉ bộ nhớ đã làm giảm hiệu suất của SQL Server 2012 xảy ra.
Giải pháp
Thông tin Cập Nhật tích lũy
Bản Cập Nhật tích lũy 3 cho SQL Server 2012 gói dịch vụ 1 (SP1)
Bản sửa lỗi cho sự cố này lần đầu tiên được phát hành trong bản Cập Nhật Cumulative 3. Để biết thêm thông tin về cách tải gói Cập Nhật tích lũy cho SQL Server 2012 SP 1, hãy bấm vào số bài viết sau đây để xem bài viết trong cơ sở kiến thức Microsoft:
2812412 Gói Cập Nhật tích lũy 3 cho SQL Server 2012 gói dịch vụ 1Lưu ý Vì bản dựng được tích lũy, mỗi bản phát hành khắc phục sự cố mới chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản phát hành sửa lỗi SQL Server 2012 SP 1 trước đó. Chúng tôi khuyên bạn nên cân nhắc việc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
2772858 Bản dựng SQL Server 2012 đã được phát hành sau khi SQL Server 2012 Service Pack 1 đã được phát hành
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Thông tin Bổ sung
Bảng sau đây cung cấp thêm thông tin về các sản phẩm hoặc công cụ tự động kiểm tra điều kiện được mô tả trong phần "triệu chứng" trong trường hợp SQL Server của bạn và trong các phiên bản của SQL Server đối với quy tắc được đánh giá:
Phần mềm quy tắc |
Tiêu đề quy tắc |
Mô tả quy tắc |
Các phiên bản sản phẩm đối với quy tắc được đánh giá |
---|---|---|---|
Cố vấn trung tâm hệ thống |
Rò rỉ bộ nhớ SQL Server khi truy vấn chạy với một bảng tạm thời trong quy trình lưu trữ lồng nhau trong SQL Server 2012 |
Trong trường SQL Server, cố vấn phát hiện sự hiện diện của SQL Server được xây dựng thấp hơn bản dựng đã khắc phục sự cố đã rò rỉ bộ nhớ. Điều này có thể xảy ra khi bạn có một thủ tục được lưu trữ có chứa quy trình lưu trữ cho trẻ em, sử dụng các bảng temp mà tiếp tục sử dụng con trỏ. Bạn có thể nhận thấy MEMORYCLERK_SQLOPTIMIZER sys.dm_os_memory_clerks và MEMOBJ_EXECCOMPILETEMP từ sys.dm_os_memory_objects sẽ rất cao. Tham khảo bài viết KB để biết thêm chi tiết. |
SQL Server 2012 |