การปรับปรุงสำหรับคำสั่ง DBCC CHECKDB อาจส่งผลให้ประสิทธิภาพที่ดีขึ้นเมื่อคุณใช้ตัวเลือก PHYSICAL_ONLY

นำไปใช้กับ: SQL Server 2008 R2 DatacenterSQL Server 2008 R2 DeveloperSQL Server 2008 R2 Enterprise

Microsoft กระจาย Microsoft SQL Server 2008 R2, SQL Server 2008 R2 SP1 และ SQL Server 2008 แก้ไขเป็นแฟ้มหนึ่งแฟ้มที่สามารถดาวน์โหลดได้ เนื่องจากการแก้ไขเป็นแบบสะสม แต่ละรุ่นใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในก่อนหน้านี้ SQL Server 2008 R2, SQL Server 2008 R2 SP1 และ SQL Server 2008 แก้ไขนำออกใช้

บทนำ

คำสั่งDBCC CHECKDBสมดุลระหว่างประสิทธิภาพและทรัพยากรที่จำเป็น ดังนั้น โดยค่าเริ่มต้นคำสั่งDBCC CHECKDBอาจไม่ให้มากที่สุด ใช้ทรัพยากรเมื่อการตรวจสอบความสอดคล้องกันสำหรับฐานข้อมูลจะถูกเรียกใช้ตัวอย่างเช่น คำสั่งDBCC CHECKDBอาจขยายการใช้งานดิสก์ I/O เมื่อรันการตรวจสอบความสอดคล้องกันสำหรับฐานข้อมูล

การแก้ไข


ข้อมูลการปรับปรุงสะสม

SQL Server 2008 Service Pack ที่ 2

ก่อนการแก้ไขสำหรับปัญหานี้ถูกออกใน 9 ปรับปรุงสะสมสำหรับ SQL Server 2008 Service Pack 2 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงนี้ คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2673382 แพคเกจโปรแกรมปรับปรุงสะสม 9 สำหรับ SQL Server 2008 Service Pack 2

หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับ SQL Server 2008 ก่อนหน้านี้แก้ไขการนำออกใช้ เราขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

2402659 สร้าง SQL Server 2008 ที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 Service Pack 2

โปรแกรมแก้ไขด่วนของ Microsoft SQL Server 2008 จะถูกสร้างขึ้นสำหรับ SQL Server service packs เฉพาะ คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2008 Service Pack 2 กับการติดตั้ง SQL Server 2008 Service Pack 2 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนใด ๆ ที่มีให้ในเซอร์วิสแพ็ค SQL Server จะรวมอยู่ใน service pack ถัดไปของ SQL Server

SQL Server 2008 Service Pack ที่ 3

ก่อนการแก้ไขสำหรับปัญหานี้ถูกออกใน 4 ปรับปรุงสะสมสำหรับ SQL Server 2008 Service Pack 3 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจโปรแกรมปรับปรุงนี้ ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

2673383 แพคเกจโปรแกรมปรับปรุงสะสม 4 สำหรับ SQL Server 2008 Service Pack 3

หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับ SQL Server 2008 ก่อนหน้านี้แก้ไขการนำออกใช้ Microsoft ขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

2629969 สร้าง SQL Server 2008 ที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 Service Pack 3

โปรแกรมแก้ไขด่วนของ Microsoft SQL Server 2008 จะถูกสร้างขึ้นสำหรับ SQL Server service packs เฉพาะ คุณต้องใช้โปรแกรมแก้ไขด่วนของ SQL Server 2008 Service Pack 3 เมื่อต้องการการติดตั้ง SQL Server 2008 Service Pack 3 โดยค่าเริ่มต้น โปรแกรมแก้ไขด่วนใด ๆ ที่มีให้ในเซอร์วิสแพ็ค SQL Server จะรวมอยู่ใน service pack ถัดไปของ SQL Server

แพคเกจโปรแกรมปรับปรุงสะสม 11 สำหรับ SQL Server 2008 R2

การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ก่อนใน 11 ปรับปรุงสะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงนี้สำหรับ SQL Server 2008 R2 ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

2633145 แพคเกจโปรแกรมปรับปรุงสะสม 11 สำหรับ SQL Server 2008 R2

หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับการก่อนหน้า SQL Server 2008 R2 รุ่นที่แก้ไข เราขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

981356 สร้าง SQL Server 2008 R2 ที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 R2

แพคเกจโปรแกรมปรับปรุงสะสม 4 สำหรับ SQL Server 2008 R2 SP1

การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้แล้วใน 4 การปรับปรุงสะสมครั้งแรก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงนี้สำหรับ SQL Server 2008 R2 SP1 ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

2633146 แพคเกจโปรแกรมปรับปรุงสะสม 4 สำหรับ SQL Server 2008 R2 SP1

หมายเหตุ เนื่องจากรุ่นเป็นแบบสะสม แต่ละรุ่นแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และแก้ไขการรักษาความปลอดภัยทั้งหมดที่ถูกรวมกับการก่อนหน้า SQL Server 2008 R2 SP1 รุ่นที่แก้ไข เราขอแนะนำว่า คุณควรพิจารณาถึงการใช้การแก้ไขที่นำออกใช้ล่าสุดที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:

2567616 สร้าง SQL Server 2008 R2 ที่เปิดตัวหลังจากเปิดตัว SQL Server 2008 R2 SP1

SQL Server 2012

2012 เซิร์ฟเวอร์ SQL ประกอบด้วยการเปลี่ยนแปลงรหัสสำหรับการแก้ไขปัญหาเหล่านี้ ค่าสถานะการสืบค้นกลับทั้ง 2562 และ 2549 ตามที่อธิบายด้านล่างนี้ยังใช้กับ 2012 เซิร์ฟเวอร์ SQL อย่างไรก็ตาม การแก้ไขเพื่อลดข้อขัดแย้งในการ latch DBCC_MULTIOBJECT_SCANNERไม่ต้องติดตามค่าสถานะ 2562 ใน SQL Server 2012 การเปลี่ยนแปลงเหล่านั้นถูกรวมอยู่ตามค่าเริ่มต้นใน SQL Server 2012

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


การปรับปรุงสะสมนี้แนะนำค่าสถานะติดตามสองเพื่อขยายการใช้งานทรัพยากร I/O ของดิสก์ได้ดีขึ้น เมื่อผู้ใช้ดำเนินการคำสั่งDBCC CHECKDB ถึงแม้ว่าใกล้เป้าหมายเฉพาะPHYSICAL_ONLY ตัวเลือก เหล่านั้นอาจยังช่วยปรับปรุงประสิทธิภาพโดยรวมของคำสั่งDBCC CHECKDBที่ไม่ได้ใช้ตัวเลือกPHYSICAL_ONLYได้ติดตามค่าสถานะ 2562แฟล็กการติดตามนี้รวมถึงการเปลี่ยนแปลงต่อไปนี้: 
  • เรียกใช้คำสั่งDBCC CHECKDBใน "ชุด" โดยไม่คำนึงถึงจำนวนของดัชนีในฐานข้อมูลเดียวกัน โดยค่าเริ่มต้น คำสั่งDBCC CHECKDBพยายามลดtempdbทรัพยากร ด้วยการจำกัดจำนวนของดัชนีหรือ "เท็จ" ที่สร้าง โดยใช้แบบแนวคิด "ชุด" แฟล็กการติดตามนี้บังคับให้การประมวลผลทั้งหมดลงในชุดงานหนึ่ง
  • ปรับปรุงการประมวลผลภายในสำหรับการกำหนดหน้าที่จะอ่านจากฐานข้อมูล สิ่งนี้ลดการช่วงชิงงานบนบนDBCC_MULTIOBJECT_SCANNERlatch
ลักษณะหนึ่งของการใช้แฟล็กการติดตามนี้คือความต้องการเนื้อที่สำหรับtempdb อาจเพิ่มขึ้น Tempdb อาจเพิ่มขึ้นตามจำนวน 5 เปอร์เซ็นต์หรือฐานข้อมูลผู้ใช้ที่กำลังประมวลผล โดยใช้คำสั่งDBCC CHECKDBเพิ่มเติมได้ ดังนั้น เราขอแนะนำว่า คุณขนาดtempdbล่วงหน้า อย่างน้อย 5 เปอร์เซ็นต์ของขนาดฐานข้อมูลของคุณเมื่อคุณใช้ค่าสถานะการสืบค้นกลับนี้เพื่อหลีกเลี่ยงการขยายอัตโนมัติ ซึ่งอาจทำให้ช้าลงประสิทธิภาพการทำงานของคำสั่งDBCC CHECKDBหมายเหตุ ติดตามค่าสถานะ 2562 เป็นค่าสถานะการสืบค้นกลับเซสชันระดับ คุณสามารถเปิดใช้งานในระดับเซสชันแฟล็กการติดตาม 2549คำสั่งDBCC CHECKDBสร้างรายชื่อภายในของเพจที่จะอ่านต่อเฉพาะไดรฟ์ข้ามแฟ้มฐานข้อมูลทั้งหมด ตรรกะนี้กำหนดเฉพาะไดรฟ์ตามอักษรชื่อไดรฟ์ของชื่อแฟ้มแต่ละแฟ้มที่มีอยู่จริงหรือไม่ ถ้าดิสก์ต้นแบบไม่ซ้ำกันจริง ๆ เมื่อไดรฟ์ตัวอักษร หรือไม่ คำสั่งDBCC CHECKDBจะถือว่าเป็นหนึ่งดิสก์เหล่านี้ เมื่อเปิดใช้ค่าสถานะการสืบค้นกลับนี้ แต่ละแฟ้มฐานข้อมูลจะถือว่าเป็นบนไดรฟ์เฉพาะ ไม่ใช้แฟล็กการติดตามนี้ยกเว้นว่าคุณทราบว่า แฟ้มแต่ละแฟ้มจะขึ้นอยู่กับดิสก์ทางกายภาพที่ไม่ซ้ำกันหมายเหตุ แฟล็กการติดตาม 2549 มีค่าสถานะติดตามส่วนกลาง เมื่อต้องการเปิดใช้งาน คุณจำเป็นต้องใช้เป็นพารามิเตอร์การเริ่มต้นระบบ หรือใช้DBCC TRACEON (2549, -1)ถึงแม้ว่าค่าสถานะการติดตามเหล่านี้เพิ่มประสิทธิภาพของDBCC CHECKDBคำสั่งDBCC CHECKDBที่เป้าหมายใช้ ตัวเลือก ผู้ใช้บางรายอาจไม่เห็นการปรับปรุงใด ๆ ในประสิทธิภาพการทำงานได้ ในขณะที่ค่าสถานะการติดตามเหล่านี้เป็นการปรับปรุงการใช้ทรัพยากรของดิสก์ I/O ประสิทธิภาพการทำงานพื้นฐานของทรัพยากรบนดิสก์อาจจำกัดประสิทธิภาพโดยรวมของคำสั่งDBCC CHECKDBระวังข้อจำกัดต่อไปนี้:
  • การปรับปรุงประสิทธิภาพการทำงานที่ถูกออกแบบมาเพื่อปรับปรุงประสิทธิภาพเมื่อคุณใช้การซ่อมแซมไม่ตัวเลือก ตัวอย่างเช่น การปรับปรุงประสิทธิภาพไม่ออกแบบมาเพื่อปรับปรุงประสิทธิภาพเมื่อคุณใช้REPAIR_ALLOW_DATA_LOSSตัวเลือก
  • การปรับปรุงที่มีผลกระทบต่อDBCC CHECKALLOCคำสั่ง
  • การปรับปรุงที่อาจช่วยให้ประสิทธิภาพการทำงานของDBCC CHECKTABLEคำสั่งสำหรับดัชนีที่มีหลายหน้าได้ อย่างไรก็ตาม การปรับปรุงจะไม่เป็นเป้าหมายเพื่อปรับปรุงประสิทธิภาพการทำงานของคำสั่งDBCC CHECKTABLE

สถานะ


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