Microsoft แจก microsoft Microsoft SQL Server ๒๐๐๘ R2 จะแก้ไขเป็นไฟล์ที่สามารถดาวน์โหลดได้หนึ่งไฟล์ เนื่องจากการแก้ไขจะสะสมแต่ละรุ่นใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘ R2 รุ่นก่อนหน้านี้
อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
แอปพลิเคชันจะเรียกใช้คิวรีที่อ้างอิงบางตารางชั่วคราวใน Microsoft SQL Server ๒๐๐๘และใน Microsoft SQL Server ๒๐๐๘ R2 ตารางชั่วคราวจะถูกสร้างขึ้นในเซสชันแทนที่จะอยู่ในกระบวนงานที่เก็บไว้
-
แผนคิวรีจะถูกแคช
-
ผู้ใช้หลายคนเรียกใช้คิวรีเดียวกันในสภาพแวดล้อมที่พร้อมกันสูง ตัวอย่างเช่นผู้ใช้หลายคนใช้แอปพลิเคชันที่เรียกใช้คิวรีต่อไปนี้:
create table #x (col1 int) go insert into #x values (1) go select * from #x where col1 = 1 go
ในสถานการณ์สมมตินี้แอปพลิเคชันพบปัญหาด้านประสิทธิภาพการทำงานหมายเหตุ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการระบุปัญหานี้ให้ดูที่ส่วน "ข้อมูลเพิ่มเติม"
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากแผนของคิวรีเดียวกันจะถูกแทรกลงในแคชในกลุ่มแฮชที่เหมือนกันสำหรับผู้ใช้แต่ละรายเมื่อข้อความคิวรีเหมือนกัน เมื่อมีการเชื่อมต่อแผนจำนวนมากเข้ากับกลุ่มเดียวกัน (หรือที่เรียกว่าห่วงโซ่แฮช) เวลาในการค้นหาแผนในแคชที่เพิ่มขึ้นอย่างมากและปัญหาด้านประสิทธิภาพการทำงานอาจเกิดขึ้น นอกจากนี้เธรดของผู้ปฏิบัติงานอาจพบการขัดแย้งของ spinlock ที่รุนแรงและเธรดอื่นจะได้รับผลกระทบเมื่อเธรดของผู้ปฏิบัติงานเหล่านี้ไม่ได้ทำการส่งผลตอบแทนตัวจัดกำหนดการที่ถูกต้อง
การแก้ไข
หมายเหตุ เฉพาะการอัปเดตสำหรับ SQL Server ๒๐๐๘ R2 พร้อมใช้งานในขณะนี้ สำหรับ SQL Server ๒๐๐๘ให้ดูที่ส่วน "วิธีแก้ไขปัญหา" เพื่อแก้ไขปัญหานี้
ข้อมูลโปรแกรมอัปเดตสะสม
SQL Server ๒๐๐๘ R2 Service Pack 1
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน1การอัปเดตที่สะสมสำหรับ SQL Server ๒๐๐๘ R2 Service Pack 1 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๕๔๔๗๙๓ แพคเกจโปรแกรมปรับปรุงที่สะสม1สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 1หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไขรุ่นก่อนหน้าของ SQL Server ๒๐๐๘ R2 เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๕๖๗๖๑๖ รุ่นของ SQL Server ๒๐๐๘ R2 รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ R2 Service Pack 1 ได้รับการเผยแพร่แล้ว
SQL Server 2008 R2
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน7การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ R2 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๕๐๗๗๗๐ แพคเกจโปรแกรมปรับปรุงที่สะสม7สำหรับ SQL Server ๒๐๐๘ R2 หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไขรุ่นก่อนหน้าของ SQL Server ๒๐๐๘ R2 เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๙๘๑๓๕๖ รุ่นของ SQL Server ๒๐๐๘ R2 รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ R2 ถูกเผยแพร่
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ใน SQL Server ๒๐๐๘และใน SQL Server ๒๐๐๘ R2 ให้ย้ายการอ้างอิงใดๆของตารางชั่วคราวไปยังภายในกระบวนงานที่เก็บไว้
ข้อมูลเพิ่มเติม
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างและปรับเปลี่ยนข้อมูลพื้นฐานของตารางแวะไปที่เว็บไซต์ MSDN ต่อไปนี้:
วิธีการสร้างและปรับเปลี่ยนข้อมูลพื้นฐานของตารางการ Spinlock สามารถระบุได้จากมุมมองการจัดการแบบไดนามิกของ sys.dm_os_spinlock_stats (DMV) ที่มีอัตราการขัดแย้งสูงบน SOS_CACHESTORE Spinlock เมื่อต้องการระบุปัญหานี้ให้เรียกใช้คิวรีที่มีลักษณะดังต่อไปนี้:
select cp.bucketid, count(cp.bucketid) as BucketCount, st.text from sys.dm_exec_cached_plans cp cross apply sys.dm_exec_sql_text(cp.plan_handle) as st group by cp.bucketid, st.text having count(cp.bucketid) >1 order by BucketCount descถ้าเงื่อนไขต่อไปนี้เป็นจริงเมื่อคุณเรียกใช้แบบสอบถามนี้คุณอาจพบปัญหาด้านประสิทธิภาพการทำงาน:
-
คิวรีนี้จะสร้างข้อความคิวรีเดียวกัน
-
จำนวนของ bucketid เดียวกันจะมีขนาดใหญ่หมายเหตุ จำนวนขนาดใหญ่สำหรับ bucketid เดียวกันมักจะอยู่ที่๑๐๐๐
-
ตารางชั่วคราวของการอ้างอิงแบบสอบถาม