Triệu chứng
Khi bạn sử dụng kiểu dữ liệu không gian và phương pháp liên kết trong Microsoft SQL Server 2012 hoặc Microsoft SQL Sever 2014, các mục tiêu lượng tử của bộ lập lịch SQL Server (SQLOS) sẽ được bảo vệ bởi lớp lưu trữ CLR của SQL Server. Bảo vệ này liên quan đến việc ưu tiên, các khóa chuyển SQLOS có thể làm tăng mức tiêu thụ CPU. Lý do cho việc chuyển đổi phủ trước là để bảo vệ bộ lập lịch SQLOS. Lệnh gọi vào triển khai dựa trên CLR của SQL Server có thể mất thời gian không xác định mà không giúp bộ lập lịch SQLOS hay thay đổi hành vi và mẫu đồng thời. Do đó, kiểu dữ liệu không gian được thiết kế để chuyển đổi phủ đầu trong mỗi lần gọi.
Lưu ý Kiểu dữ liệu không gian được dựa trên CLR của SQL Server, nó có thể gặp phải các mức tiêu thụ bộ nhớ .NET và hành vi chuyển mạch luồng khác nhau.
Nguyên nhân
Các phương pháp thực thi kiểu dữ liệu không gian thường dưới mili giây và có thể không yêu cầu bộ lập lịch HĐH SQL đầy đủ và bảo vệ phủ đầu. Chi phí chuyển đổi sang và từ chế độ ưu tiên có thể lớn hơn nhiều so với việc thực thi chính phương pháp không gian.
Giải pháp
Bản sửa lỗi này giới thiệu cờ theo dõi 6531 để chỉ báo cho lớp lưu trữ SQLOS biết rằng kiểu dữ liệu không gian nên tránh các biện pháp bảo vệ trước. Điều này có thể giảm mức tiêu thụ CPU và cải thiện hiệu suất tổng thể cho các hoạt động không gian. Chỉ sử dụng cờ theo dõi này nếu việc gọi phương pháp không gian, riêng lẻ (trên mỗi hàng và cột) diễn ra dưới ~4ms. Các lần gọi dài hơn mà không có bảo vệ phủ trước có thể dẫn đến các vấn đề đồng thời của bộ lập lịch và các thông báo trừng phạt SQLCLR được ghi vào nhật ký lỗi.
Sự cố này được khắc phục lần đầu tiên trong bản cập nhật tích lũy tiếp theo của SQL Server.
Bản cập nhật tích lũy 4 cho SQL Server 2012 SP2 /en-us/help/3007556
Cập nhật Tích lũy 5 cho SQL Server 2014 /en-us/help/3011055
Cập nhật tích lũy 13 cho SQL Server 2012 SP1 /en-us/help/3002044
Giới thiệu về các bản cập nhật tích lũy cho SQL Server
Mỗi bản cập nhật tích lũy mới dành cho SQL Server 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 được tích hợp trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho SQL Server:
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP2
- Bản cập nhật tích lũy mới nhất cho SQL Server 2014
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP1
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".