Microsoft เผยแพร่ Microsoft SQL Server ๒๐๑๒แก้ไขเป็นไฟล์ที่สามารถดาวน์โหลดได้หนึ่งไฟล์ เนื่องจากการแก้ไขจะสะสมแต่ละรุ่นใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๑๒รุ่นก่อนหน้านี้
อาการ
พิจารณาสถานการณ์ต่อไปนี้:
-
คุณสร้างโครงการคุณภาพของข้อมูลอย่างน้อยหนึ่งโครงการในไคลเอ็นต์คุณภาพของข้อมูลใน Microsoft SQL Server ๒๐๑๒
-
คุณติดตั้งการอัปเดตที่สะสม1สำหรับ SQL Server ๒๐๑๒ (CU1 ของ SQL Server ๒๐๑๒) และจากนั้นคุณเรียกใช้ DQSInstaller เพื่ออัปเกรดแค็ตตาล็อกบริการคุณภาพข้อมูล (DQS) และเพิ่มวัตถุใหม่
-
คุณพยายามลบหนึ่งในโครงการคุณภาพของข้อมูลที่สร้างขึ้นโดยใช้ไคลเอ็นต์คุณภาพข้อมูล
ในสถานการณ์สมมตินี้ไคลเอ็นต์คุณภาพของข้อมูลหยุดการตอบสนองและกลไกจัดการฐานข้อมูล SQL Server จะเข้าสู่การวนรอบไม่สิ้นสุด นอกจากนี้กระบวนการรีการมีประสบการณ์การใช้งาน CPU สูง หมายเหตุ
-
เมื่อต้องการกู้คืนจากปัญหานี้ให้เริ่มไคลเอ็นต์คุณภาพข้อมูลและ DQS ใหม่
-
ปัญหานี้เกิดขึ้นเฉพาะเมื่อมีการสร้างโครงการคุณภาพของข้อมูลก่อนที่คุณจะติดตั้ง SQL Server ๒๐๑๒ CU1
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากมีการวนรอบไม่สิ้นสุดในกระบวนงานที่เก็บไว้ของระบบที่มีสาเหตุมาจากการอัปเดตตัวนับวนอย่างไม่ถูกต้องบันทึกย่อ ปัญหานี้เกิดขึ้นเนื่องจากการถดถอยใน SQL Server ๒๐๑๒ CU1
การแก้ไข
ข้อมูลโปรแกรมอัปเดตสะสม
ข้อมูล service pack สำหรับ SQL Server ๒๐๑๒
เมื่อต้องการแก้ไขปัญหานี้ให้ขอรับ service pack ล่าสุดสำหรับ SQL Server ๒๐๑๒ สำหรับข้อมูลเพิ่มเติมให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๗๕๕๕๓๓ วิธีการขอรับ service pack ล่าสุดสำหรับ SQL Server ๒๐๑๒
SQL Server 2012
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน2การปรับปรุงที่สะสมสำหรับ SQL Server ๒๐๑๒ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๗๐๓๒๗๕ แพคเกจโปรแกรมปรับปรุงที่สะสม2สำหรับ SQL Server ๒๐๑๒หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server fix รุ่นก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๖๙๒๘๒๘ SQL Server ๒๐๑๒รุ่นที่เผยแพร่หลังจากที่มีการเผยแพร่ SQL Server ๒๐๑๒
วิธีแก้ไขปัญหาชั่วคราว
เมื่อต้องการแก้ไขปัญหานี้ให้ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้วิธีที่ 1เมื่อต้องการเพิ่มกระบวนงาน dummy ที่เปิดใช้งานการวนรอบของกระบวนงานที่เก็บไว้ไม่สิ้นสุดการดำเนินการต่อแล้วออกอย่างถูกต้องให้ทำตามขั้นตอนต่อไปนี้:
-
เรียกใช้คิวรีต่อไปนี้เพื่อระบุชื่อ schema สำหรับโครงการที่ได้รับผลกระทบที่คุณพยายามลบ:
SELECT 'KnowledgeManagement'+CAST(ID AS NVARCHAR) AS SchemaName, Name FROM DQS_MAIN.dbo.A_KNOWLEDGEBASE WHERE TYPE=2
-
ใช้ค่า SchemaName ที่ส่งกลับแล้วเรียกใช้คำสั่งที่มีลักษณะดังต่อไปนี้ใน SQL Server Management Studio เพื่อจัดหาชื่อ schema ที่ตรงกันและรหัสโครงการคุณภาพของข้อมูล กระบวนงาน dummy ใหม่จะถูกสร้างขึ้นสำหรับ schema และโครงการคุณภาพของข้อมูลที่สอดคล้องกัน ดังนั้นการวนรอบอนันต์จะดำเนินการอย่างถูกต้อง
USE DQS_PROJECTSGOCREATE PROCEDURE DQProject<ID>.NewIndexParseTrigramsFromLexiconAS BEGINPRINT 'THIS IS A DUMMY PROCEDURE TO MAKE DELETE WORK for Microsoft KB Article 2705571';END
หมายเหตุ <ID> แสดง Id ภายในของโครงการคุณภาพของข้อมูลที่ถูกลบ
-
ตรวจสอบว่าโครงการคุณภาพของข้อมูลถูกลบออกจากไคลเอ็นต์คุณภาพข้อมูลตามที่คาดไว้
วิธีที่ 2ถ้าคุณต้องการฆ่าขั้นตอนการวนรอบอย่างรวดเร็วเพื่อประหยัดทรัพยากรของ CPU ให้เรียกใช้คำสั่งต่อไปนี้เพื่อระบุเซสชันที่ถูกต้อง อย่างไรก็ตามการฆ่าขั้นตอนการวนรอบไม่ได้เป็นการลบโครงการคุณภาพของข้อมูลที่ไม่ถูกต้อง คำสั่ง Transact SQL ต่อไปนี้ช่วยระบุและฆ่าเซสชันที่ถูกต้อง ถ้ามีเซสชันมากกว่าหนึ่งเซสชันจากไคลเอ็นต์คุณภาพข้อมูลกำลังทำงานอยู่คุณอาจต้องเรียกใช้คำสั่งหลายครั้งดังนี้
DECLARE @session smallint, @text nvarchar(2000), @killcommand nvarchar(200)SELECT TOP 1 @session=s.session_id, @text=st.textFROM sys.dm_exec_sessions sFULL OUTER JOIN sys.dm_exec_requests r ON s.session_id=r.session_idCROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS stWHERE program_name like 'DQ Services Client: Client Id = %, KB Id = %, Proxy = KnowledgebaseManagementEntryPointClient'AND s.status='running';SELECT 'Killing this DQS session:', @session SessionID, @text QueryText;SET @killcommand=N'Kill '+ cast(@session as nvarchar)+';'EXEC sp_executesql @killcommand;
หมายเหตุ ถ้าคุณใช้วิธีที่2เพื่อฆ่าการเชื่อมต่อ DQS คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ในไคลเอ็นต์คุณภาพของข้อมูล:
บริการคุณภาพข้อมูล SQL Server--------------------------------------------------------------------------------<MessageId>: ApplicationUnhandledExceptionAn เกิดข้อยกเว้น unhandled สำหรับรายละเอียดเพิ่มเติมให้ดูที่แฟ้มบันทึกของไคลเอ็นต์บริการคุณภาพของข้อมูล--------------------------------------------------------------------------------SqlClient (0x80131904): มีข้อผิดพลาดร้ายแรงเกิดขึ้นบนคำสั่งปัจจุบัน ผลลัพธ์ถ้ามีควรละทิ้ง
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"
อ้างอิง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการอัปเกรด DQS ไปที่เว็บไซต์ Microsoft TechNet ดังต่อไปนี้: