อาการ
เมื่อคุณใช้ชนิดข้อมูล spatial และวิธีที่เกี่ยวข้องใน Microsoft SQL Server ๒๐๑๒หรือ Microsoft SQL ตัด๒๐๑๔เป้าหมายควอนตัมของระบบปฏิบัติการ SQL Server (SQLOS) จะได้รับการป้องกันโดยชั้นโฮสต์ของ SQL Server CLR การป้องกันนี้เกี่ยวข้องกับ preemptive สวิตช์ SQLOS อาจเพิ่มปริมาณการใช้ CPU เหตุผลสำหรับการ preemptive สวิตช์คือการป้องกันตัวจัดกำหนดการ SQLOS การโทรเข้าไปยังการดำเนินการที่ยึดตาม CLR ของ SQL Server สามารถใช้เวลาที่ไม่ระบุได้โดยไม่ต้องส่งไปยังตัวจัดกำหนดการ SQLOS หรือการเปลี่ยนลักษณะการทำงานและรูปแบบการเกิดพร้อมกัน ดังนั้นชนิดข้อมูล spatial ถูกออกแบบมาเพื่อสลับ preemptive ระหว่างการเรียกแต่ละครั้ง หมายเหตุ ชนิดข้อมูล spatial จะยึดตาม CLR ของ SQL Server อาจพบระดับต่างๆของการใช้หน่วยความจำของ .NET และลักษณะการทำงานของการสลับเธรด
สาเหตุ
เมธอดชนิดข้อมูล spatial executions มักจะเป็นมิลลิวินาทีและอาจไม่จำเป็นต้องใช้ตัวจัดกำหนดการของ SQL OS แบบเต็มและการป้องกัน preemptive ค่าใช้จ่ายในการสลับไปยังและจากโหมด preemptive อาจมีขนาดใหญ่กว่าการดำเนินการของ spatial เมธอด
การแก้ไข
การแก้ไขนี้จะแนะนำการติดตามค่าสถานะ๖๕๓๑เพื่อระบุไปยังชั้น SQLOS host ที่ชนิดข้อมูล spatial ควรหลีกเลี่ยงการคุ้มครอง preemptive การทำเช่นนี้สามารถลดปริมาณการใช้ CPU และปรับปรุงประสิทธิภาพการทำงานโดยรวมสำหรับกิจกรรม spatial ใช้ค่าสถานะการติดตามนี้เฉพาะในกรณีที่แต่ละรายการดุเมธอด spatial (ต่อแถวและคอลัมน์) ใช้เวลาน้อยกว่า ~ 4ms ดุอีกต่อไปโดยไม่มีการป้องกัน preemptive อาจทำให้เกิดปัญหาการเกิดพร้อมกันในตัวจัดกำหนดการและการลงโทษ SQLCLR ข้อความที่บันทึกไว้ในบันทึกข้อผิดพลาด ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมของ SQL Server ครั้งแรก
การอัปเดตที่สะสม4สำหรับ SQL Server ๒๐๑๒ SP2 /en-us/help/3007556
การอัปเดตที่สะสม5สำหรับ SQL Server ๒๐๑๔ /en-us/help/3011055
การอัปเดตที่สะสม13สำหรับ SQL Server ๒๐๑๒ SP1 /en-us/help/3002044
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"