อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณมีกระบวนงานที่เก็บไว้ที่ประกอบด้วยกระบวนงานที่เก็บไว้สำหรับลูกใน Microsoft SQL Server ๒๐๑๒
-
กระบวนงานที่เก็บไว้ของลูกจะใช้ตารางเป็นพารามิเตอร์
-
คุณสร้างตารางชั่วคราวและจากนั้นคุณสามารถส่งต่อไปยังกระบวนงานที่เก็บไว้ของลูกเป็นพารามิเตอร์
-
กระบวนงานที่เก็บไว้ของลูกจะเรียกใช้แบบสอบถามบางอย่างกับตารางชั่วคราวโดยใช้เคอร์เซอร์
ในสถานการณ์สมมตินี้การรั่วไหลของหน่วยความจำที่ทำให้ประสิทธิภาพการทำงานของ SQL Server ๒๐๑๒เกิดขึ้น
การแก้ไข
ข้อมูลโปรแกรมอัปเดตสะสม
การอัปเดตที่สะสม3สำหรับ SQL Server ๒๐๑๒ Service Pack 1 (SP1)
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน3การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๑๒ SP 1 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๘๑๒๔๑๒ แพคเกจโปรแกรมปรับปรุงที่สะสม3สำหรับ SQL Server ๒๐๑๒ Service Pack 1หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๑๒ SP 1 รุ่นก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๗๗๒๘๕๘ SQL Server ๒๐๑๒รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๑๒ Service Pack 1 ได้รับการเผยแพร่แล้ว
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
ข้อมูลเพิ่มเติม
ตารางต่อไปนี้มีข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์หรือเครื่องมือที่จะตรวจหาเงื่อนไขที่อธิบายไว้ในส่วน "อาการ" ในอินสแตนซ์ของ SQL Server และในเวอร์ชันของ SQL Server ที่มีการประเมินกฎดังต่อไปนี้
ซอฟต์แวร์กฎ |
ชื่อกฎ |
คำอธิบายกฎ |
เวอร์ชันผลิตภัณฑ์ที่มีการประเมินกฎ |
---|---|---|---|
โปรแกรมช่วยแนะนำศูนย์ระบบ |
การรั่วไหลของหน่วยความจำของ SQL Server เมื่อมีการเรียกใช้แบบสอบถามกับตารางชั่วคราวในกระบวนงานที่เก็บไว้ซ้อนกันใน SQL Server ๒๐๑๒ |
ในโปรแกรมช่วยแนะนำอินสแตนซ์ของ SQL Server นี้ตรวจพบการแสดงตนของ SQL Server รุ่นที่ต่ำกว่ารุ่นที่สร้างไว้สำหรับปัญหาการรั่วไหลของหน่วยความจำ การดำเนินการนี้อาจเกิดขึ้นเมื่อคุณมีกระบวนงานที่เก็บไว้ที่ประกอบด้วยกระบวนงานที่เก็บไว้สำหรับลูกซึ่งใช้ตารางชั่วคราวที่ใช้เคอร์เซอร์ต่อไป คุณอาจสังเกตเห็น MEMORYCLERK_SQLOPTIMIZER ของ sys.dm_os_memory_clerks และ MEMOBJ_EXECCOMPILETEMP จาก sys.dm_os_memory_objects จะสูงมาก อ้างอิงไปยังบทความ KB สำหรับรายละเอียดเพิ่มเติม |
SQL Server 2012 |