KB963659-การแก้ไข: คุณได้รับข้อความแสดงข้อผิดพลาดเมื่อคุณดำเนินการเป็นประชากรสำหรับดัชนีข้อความแบบเต็มขนาดใหญ่ใน SQL Server ๒๐๐๘หรือใน SQL Server ๒๐๐๘ R2

นำไปใช้กับ: SQL Server 2008 StandardSQL Server 2008 EnterpriseSQL Server 2008 Developer

Microsoft เผยแพร่ Microsoft SQL Server ๒๐๐๘แก้ไขเป็นไฟล์ที่สามารถดาวน์โหลดได้หนึ่งไฟล์ เนื่องจากการแก้ไขจะสะสมแต่ละรุ่นใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘รุ่นก่อนหน้านี้

อาการ


อาการ 1เมื่อคุณดำเนินการเป็นประชากรสำหรับดัชนีข้อความแบบเต็มขนาดใหญ่ใน Microsoft SQL Server ๒๐๐๘หรือใน Microsoft SQL Server ๒๐๐๘ R2 คุณอาจได้รับข้อความแสดงข้อผิดพลาดในไฟล์บันทึกข้อความแบบเต็ม จำนวนครั้งที่ข้อความแสดงข้อผิดพลาดนี้ถูกบันทึกขึ้นอยู่กับขนาดของชุดงานลบหนึ่ง ตัวอย่างเช่นบนคอมพิวเตอร์๓๒บิตขนาดชุดคือ๑,๐๐๐ดังนั้นข้อผิดพลาดจะถูกบันทึก๙๙๙เวลา ข้อความแสดงข้อผิดพลาดคล้ายกับต่อไปนี้:
ข้อผิดพลาด ' 0x8004cb04: wordlist ในหน่วยความจำเสียหาย นี่คือเนื่องจากตัวกรองที่ผิดพลาด wordbreaker หรือคอมโพเนนต์การทำดัชนีอื่นๆ ' เกิดขึ้นในระหว่างการทำดัชนีข้อความแบบเต็มสำหรับตารางหรือมุมมองที่มีการทำดัชนี ' [smarsh] [dbo] [ArchiveMsgs] ' (ตารางหรือมุมมองที่เป็นดัชนี ' ๑๖๐๗๑๙๖๒๕ ' ID ฐานข้อมูล ' 7 '), ค่าคีย์ข้อความแบบเต็ม ' ๒๙๑๔๘๔๐๘๗ ' ความพยายามที่จะทำการจัดดัชนีใหม่
หลังจากที่คุณได้รับข้อความแสดงข้อผิดพลาดนี้คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้สำหรับขนาดของชุดงานลบหนึ่ง:
<วันที่> <> spid28s ข้อผิดพลาด ' 0x80040e28 ' เกิดขึ้นในระหว่างการทำดัชนีข้อความแบบเต็มสำหรับตารางหรือมุมมองที่เป็นดัชนี ' [smarsh] [dbo] [ArchiveMsgs] ' (ตารางหรือมุมมองที่เป็นดัชนี ' ๑๖๐๗๑๙๖๒๕ ' ID ฐานข้อมูล ' 7 '), ค่าคีย์ข้อความแบบเต็ม ' ๑๙๙๕๙๘๒๑๑ ' ความพยายามที่จะทำการจัดดัชนีใหม่
หลังจากที่คุณได้รับข้อความแสดงข้อผิดพลาดนี้คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้สำหรับขนาดของชุดงานลบหนึ่ง:
<วันที่> <> spid26s ข้อผิดพลาด ' 0x80043630: กระบวนการดีมอนตัวกรอง MSFTEFD.EXE หมดเวลาสำหรับเหตุผลที่ไม่ทราบ ซึ่งอาจระบุจุดบกพร่องในตัวกรองตัวกรอง wordbreaker หรือตัวจัดการโพรโทคอล ' เกิดขึ้นในระหว่างการทำดัชนีข้อความแบบเต็มสำหรับตารางหรือมุมมองที่เป็นดัชนี ' [smarsh] [dbo] [ArchiveMsgs] ' (ตารางหรือมุมมองที่เป็นดัชนี ' ๑๖๐๗๑๙๖๒๕ ' ID ฐานข้อมูล ' 7 '), ค่าคีย์ข้อความแบบเต็ม ' ๑๔๓๐๔๑๓๐ ' ความพยายามที่จะทำการจัดดัชนีใหม่
อาการ 2นอกจากนี้คุณอาจสังเกตเห็นว่ากระบวนการ FDHOST ทำงานไม่ถูกต้อง เมื่อคุณพยายามเรียกใช้คิวรีแบบใช้ข้อความแบบเต็มหรือดำเนินการเป็นประชากรข้อความแบบเต็มคุณจะได้รับข้อความต่อไปนี้กลับไปยังไคลเอ็นต์
Msg ๓๐๐๕๓ระดับ16รัฐ๑๐๒บรรทัด1Word จะหมดเวลาสำหรับสตริงแบบสอบถามแบบข้อความแบบเต็ม กรณีนี้อาจเกิดขึ้นได้ถ้า wordbreaker ใช้เวลานานในการประมวลผลสตริงแบบสอบถามแบบเต็มหรือถ้าแบบสอบถามจำนวนมากกำลังทำงานบนเซิร์ฟเวอร์ ลองเรียกใช้คิวรีอีกครั้งภายใต้การโหลดที่เบากว่า
เมื่อคุณตรวจสอบบันทึก SQLFT * สำหรับแค็ตตาล็อกนี้คุณจะพบข้อความแสดงข้อผิดพลาดนี้:
ข้อผิดพลาด ' 0x80004005 ' เกิดขึ้นในระหว่างการทำดัชนีข้อความแบบเต็มสำหรับตารางหรือมุมมองที่เป็นดัชนี ' [DBNAME] [dbo] [ชื่อ] ' (ตารางหรือมุมมองที่เป็นดัชนี ' ๑๒๐๔๐๐๑๗๒๔ ' ID ของฐานข้อมูล ' 5 '), ค่าคีย์ข้อความแบบเต็ม ' 4 ' ความพยายามที่จะทำการจัดดัชนีใหม่
เมื่อคุณตรวจสอบการ Errorlog ของ SQL คุณสังเกตเห็นข้อความแสดงข้อผิดพลาดนี้:
ข้อผิดพลาด: ๓๐๐๘๙ความรุนแรง:17 สถานะ: 1 กระบวนการตัวกรองของดีมอน (FDHost) ที่ทำให้เกิดการหยุดทำงานอย่างผิดปกติ กรณีนี้อาจเกิดขึ้นได้ถ้าคอมโพเนนต์ภาษาที่ถูกกำหนดค่าอย่างไม่ถูกต้องหรือมีความบกพร่องเช่น wordbreaker, stemmer หรือ filter ได้ทำให้เกิดข้อผิดพลาด irrecoverable ระหว่างการทำดัชนีข้อความแบบเต็มหรือการประมวลผลคิวรี กระบวนการจะเริ่มต้นใหม่โดยอัตโนมัติ

สาเหตุ


ปัญหานี้เกิดขึ้นเนื่องจากมีข้อบกพร่องในการติดต่อสื่อสารระหว่างกระบวนการ Fdhost และกระบวนการ เมื่อมีการส่งชุดงานจากกระบวนการ Fdhost ไปยังกระบวนการที่ใช้ร่วมกันในบางครั้งหน่วยความจำที่ใช้ร่วมกัน (OSM) ซึ่งเป็นหน่วยความจำที่ใช้ร่วมกันจากการ Fdhost เพื่อให้พอดีกับคอลัมน์ถัดไปของเอกสาร เมื่อเหตุการณ์นี้เกิดขึ้นกระบวนการ Fdhost จะส่งข้อความแจ้งให้ทราบถึงกระบวนการเพื่อประมวลผลข้อมูลที่มีอยู่ทั้งหมดใน OSM ในขณะที่กระบวนการ Fdhost กำลังประมวลผลข้อมูลหน่วยความจำที่ใช้ร่วมกัน (ISM) ซึ่งเป็นหน่วยความจำที่ใช้ร่วมกันจาก Fdhost ไปเป็น ในสถานการณ์นี้กระบวนการ Fdhost จะส่งข้อความ "ย้อนกลับ" ไปยังกระบวนการ การร้องขอข้อความนี้จะส่งเอกสารสุดท้ายอีกครั้งจากคอลัมน์แรก อย่างไรก็ตามเมื่อเริ่มต้นกระบวนการรีการส่งเอกสารอีกครั้งจะเริ่มจากคอลัมน์2แทนที่จะเป็นคอลัมน์1 ซึ่งจะทำให้เกิดข้อความแสดงข้อผิดพลาดที่กล่าวถึงในส่วน "อาการ"

การแก้ไข


ข้อมูลโปรแกรมอัปเดตสะสม

SQL Server ๒๐๐๘ R2 Service Pack 2

การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน3การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 2 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๗๕๔๕๕๒ แพคเกจโปรแกรมปรับปรุงที่สะสม3สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 2
หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘ R2 Service Pack 2 เวอร์ชันก่อนหน้านี้ได้รับการแก้ไขแล้ว เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๗๓๐๓๐๑ รุ่นของ SQL Server ๒๐๐๘ R2 รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ R2 Service Pack 2 ถูกเผยแพร่แล้ว

SQL Server 2008

การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน4การอัปเดตที่สะสมสำหรับ SQL Server ๒๐๐๘เวอร์ชันวางจำหน่าย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๙๖๓๐๓๖ แพคเกจโปรแกรมปรับปรุงที่สะสม4สำหรับ SQL Server ๒๐๐๘
หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘รุ่นก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๙๕๖๙๐๙ SQL Server ๒๐๐๘รุ่นที่เผยแพร่หลังจากที่มีการเผยแพร่ SQL Server ๒๐๐๘

SQL Server ๒๐๐๘ Service Pack 1

การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน1การอัปเดตที่สะสมสำหรับ SQL Server ๒๐๐๘ Service Pack 1 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๙๖๙๐๙๙ แพคเกจโปรแกรมปรับปรุงที่สะสม1สำหรับ SQL Server ๒๐๐๘ Service Pack 1
หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘รุ่นก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๙๗๐๓๖๕ SQL Server ๒๐๐๘รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ Service Pack 1 ได้รับการเผยแพร่แล้ว

วิธีแก้ไขปัญหาชั่วคราว


เมื่อต้องการแก้ไขปัญหานี้ให้เพิ่มขนาด ISM เมื่อต้องการทำเช่นนี้ให้กำหนดค่าตัวแปร ISM_Size โดยใช้กระบวนงาน sp_fulltext_service ที่เก็บไว้ เมื่อต้องการแสดงค่าปัจจุบัน:sp_fulltext_service ' ism_size ' เพื่อเปลี่ยนค่าเป็น 16:sp_fulltext_service ' ism_size ', @value = 16หมายเหตุ: คุณจะต้องเริ่มบริการ SQL Server ใหม่เพื่อให้การเปลี่ยนแปลงนี้มีผลใช้งาน

สถานะ


Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"

ข้อมูลเพิ่มเติม


ปัญหานี้ไม่ได้ป้องกันไม่ให้ประชากรเสร็จสมบูรณ์ ดัชนีข้อความแบบเต็มมีตรรกะการลองส่งใหม่ที่มีอยู่แล้วภายในที่จะยังคงใช้รายการที่ล้มเหลวอีกครั้งจนกว่าจะสำเร็จ ดังนั้นคุณสามารถละเว้นข้อความแสดงข้อผิดพลาดได้อย่างปลอดภัย ผลกระทบด้านลบที่เป็นไปได้ที่รู้จักเท่านั้นที่อาจใช้เวลานานกว่าปกติสำหรับประชากรเพื่อให้เสร็จสมบูรณ์และการขยายขนาดของบันทึกข้อความแบบเต็มจะเพิ่มขึ้นอย่างมากสำหรับการรายงานข้อผิดพลาด ตรรกะการลองอีกครั้งในโค้ดต้นฉบับทำให้เกิดสุดกระท่อมที่ประสบความสำเร็จโดยไม่เสียหายกับดัชนีแม้จะมีข้อความแสดงข้อผิดพลาดที่ระบุว่ามีความเสียหายที่อาจเกิดขึ้นได้ ถ้าคุณกำลังทำงานเป็น อาการ #2 อธิบายไว้ด้านบนจากนั้นคิวรีการค้นหาข้อความแบบเต็มหรือประชากรจะไม่ทำงานเนื่องจากคอมโพเนนต์ FDHOST ไม่ได้อยู่ในสถานะที่ถูกต้องในการทำงานและคุณจะต้องนำการปรับปรุงที่สะสมนี้ไปใช้

ข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงที่สะสม4สำหรับ SQL Server ๒๐๐๘

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ที่มีการเปลี่ยนแปลงและข้อมูลเกี่ยวกับข้อกำหนดเบื้องต้นเมื่อต้องการนำแพคเกจการอัปเดตที่สะสมที่มีโปรแกรมแก้ไขด่วนที่อธิบายไว้ในบทความฐานความรู้ของ Microsoft นี้ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๙๖๓๐๓๖ แพคเกจโปรแกรมปรับปรุงที่สะสม4สำหรับ SQL Server ๒๐๐๘

ข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงที่สะสม1สำหรับ SQL Server ๒๐๐๘ Service Pack 1

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ที่มีการเปลี่ยนแปลงและข้อมูลเกี่ยวกับข้อกำหนดเบื้องต้นเมื่อต้องการนำแพคเกจการอัปเดตที่สะสมที่มีโปรแกรมแก้ไขด่วนที่อธิบายไว้ในบทความฐานความรู้ของ Microsoft นี้ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๙๖๙๐๙๙ แพคเกจโปรแกรมปรับปรุงที่สะสม1สำหรับ SQL Server ๒๐๐๘ Service Pack 1

อ้างอิง


สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรายการของ builds ที่พร้อมใช้งานหลังจากการวางจำหน่าย SQL Server ๒๐๐๘ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๙๕๖๙๐๙ SQL Server ๒๐๐๘รุ่นที่เผยแพร่หลังจากที่มีการเผยแพร่ SQL Server ๒๐๐๘
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการให้บริการแบบเพิ่มหน่วยสำหรับ SQL Server ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๙๓๕๘๙๗ รูปแบบการให้บริการแบบเพิ่มหน่วยจะพร้อมใช้งานจากทีม SQL Server เพื่อจัดส่งโปรแกรมแก้ไขด่วนสำหรับปัญหาที่รายงาน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งชื่อ schema สำหรับการอัปเดต SQL Server ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๘๒๒๔๙๙ แบบแผนการตั้งชื่อใหม่สำหรับแพคเกจการอัปเดตซอฟต์แวร์ของ Microsoft SQL Server
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์ของการอัปเดตซอฟต์แวร์ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
824684 คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายโปรแกรมปรับปรุงซอฟต์แวร์ของ Microsoft