KB2949751 - การแก้ไข: การละเมิดการเข้าถึงเกิดขึ้นเมื่อคุณเรียกใช้ CHECKTABLE กับตารางที่มีดัชนีที่เก็บคอลัมน์แบบกลุ่มใน SQL Server 2014

นำไปใช้กับ
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

อาการ

ลองทำตามสถานการณ์ต่อไปนี้:

  • คุณได้ติดตั้ง Microsoft SQL Server 2014 บนคอมพิวเตอร์แล้ว
  • คุณกําหนดค่าการแคชดิสก์ไม่ถูกต้องหรือการตั้งค่า RAID ล้มเหลว หรือทั้งสองอย่าง ซึ่งจะทําให้สถานะแคชไม่สอดคล้องกัน
  • คุณเรียกใช้คิวรี DBCC CHECKTABLE กับตารางที่มีดัชนีที่เก็บคอลัมน์แบบกลุ่ม

ในสถานการณ์นี้ มีการละเมิดการเข้าถึงเกิดขึ้น

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากไดรฟ์ที่รองรับการแคชดิสก์บางประเภทอาจไม่สามารถแสดงสถานะของดิสก์อย่างถูกต้องเสมอไป เมื่อระบบสิ้นสุดลง แคชอาจสูญหาย และทําให้ระบบมีสถานะไม่สอดคล้องกัน ดังนั้น ค่าการค้นหาแคชที่คาดไว้อาจเป็น Null

การแก้ปัญหา

ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตแบบสะสมของ SQL Server ต่อไปนี้

การอัปเดตสะสม 1 สําหรับ SQL Server 2014 /en-us/help/2931693

เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server

การอัปเดตแบบสะสมใหม่แต่ละรายการสําหรับ SQL Server จะมีโปรแกรมแก้ไขด่วนและการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตแบบสะสมครั้งก่อนหน้า ตรวจดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:

      

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

เมื่อต้องการแก้ไขปัญหานี้ ให้กําหนดค่าดิสก์ให้ถูกต้องเพื่อหลีกเลี่ยงความไม่สอดคล้องกันของดิสก์ คุณควรตรวจสอบให้แน่ใจว่าการแคชดิสก์ถูกตั้งค่าเป็นปิด และชุดแถบถูกจัดแนวตามขนาดหน้า (8kb)
สําหรับข้อมูลเพิ่มเติม คุณสามารถดู แนวทางปฏิบัติที่ดีที่สุดสําหรับการจัดแนวพาร์ติชันดิสก์สําหรับ SQL Server

สถานะ

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