ประสิทธิภาพการทำงานแบบสอบถาม SQL อาจลดลงเมื่ออินสแตนซ์ของฐานข้อมูลของเซิร์ฟเวอร์ SQL ที่มีการกระจายตัวของดัชนีที่สูง

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2755960 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

อาจลดประสิทธิภาพการทำงานแบบสอบถาม SQL ถ้าดัชนีจะถูกใช้งานมากกระจัดกระจายในอินสแตนซ์ของฐานข้อมูลเซิร์ฟเวอร์ SQL ของ Microsoft อีกด้วย คุณสามารถใช้ฟังก์ชันของระบบsys.dm_db_index_physical_statsเพื่อตรวจสอบการกระจายตัวของดัชนีสำหรับกรณีและปัญหาต่อไปนี้:
  • ดัชนีระบุ
  • ดัชนีทั้งหมดในตาราง
  • ดัชนีทั้งหมดบนวิวที่
  • ดัชนีทั้งหมดในฐานข้อมูล
  • ดัชนีทั้งหมดในฐานข้อมูลทั้งหมด
เมื่อต้องการตรวจสอบการกระจายตัวของข้อมูลที่มีค่ามากกว่า 30 เปอร์เซ็นต์ เรียกใช้สคริปต์แบบสอบถาม SQL ต่อไปนี้:

SELECT OBJECT_NAME(i.OBJECT_ID) AS TableName, OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS IndexName,i.name AS IndexName, indexstats.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') indexstats INNER JOIN sys.indexes i ON i.OBJECT_ID = indexstats.OBJECT_ID WHERE indexstats.avg_fragmentation_in_percent > 30 AND i.index_id = indexstats.index_id
เมื่อต้องกำหนดวิธีที่ดีที่สุดเมื่อต้องการกระจายตัวของการแก้ไข ดูคำแนะนำต่อไปนี้:
  • ใช้แบบเปลี่ยนดัชนีสร้างใหม่ด้วย (แบบออนไลน์ = ON) *คำสั่งสำหรับออบเจ็กต์ที่มีการกระจายตัวเปอร์เซ็นต์เฉลี่ยจะมากกว่า 30 เปอร์เซ็นต์
  • ใช้คำสั่งการเปลี่ยนแปลงการจัดระเบียบใหม่ตามดัชนีสำหรับวัตถุมีการกระจายตัวของเปอร์เซ็นต์ที่มีค่าเฉลี่ยระหว่าง 5 ถึง 30 เปอร์เซ็นต์

ยุบตารางนี้ขยายตารางนี้
ค่าavg_fragmentation_in_percentคำสั่งแก้ไข
> 5% และ< ==""> REORGANIZE ดัชนี ALTER
> 30%สร้างดัชนีที่มีการเปลี่ยนแปลง (ออนไลน์ = ON) *
หมายเหตุ:
  • ค่าเหล่านี้ให้คำแนะนำแบบคร่าว ๆ สำหรับการกำหนดจุดที่คุณควรเลือกสลับไปมาระหว่างการเปลี่ยนแปลงการจัดระเบียบใหม่ตามดัชนีและการปรับเปลี่ยนดัชนีที่สร้างใหม่ อย่างไรก็ตาม ค่าที่แท้จริงอาจแตกต่างไปจากกรณีไปกรณี คุณต้องการทดลองทำเพื่อกำหนดเขตแดนที่ดีที่สุดสำหรับสภาพแวดล้อมของคุณ
  • ระดับที่ต่ำมากของการกระจายตัวของ (น้อยกว่า 5 เปอร์เซ็นต์) ไม่ควรให้ความสนใจ โดยคำสั่งเหล่านี้อย่างใดอย่างหนึ่ง เป็นเช่นนี้ เพราะประโยชน์จากการเอาออกเช่นปริมาณน้อยของการกระจายตัวของอย่างมากมักจะเป็น outweighed โดยต้นทุนของการปรับโครงสร้าง หรือดัชนีที่เกิดปัญหาขึ้น

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการจัดระเบียบ และการสร้างดัชนีใหม่ ไปที่เว็บไซต์ของ Microsoft ต่อไปนี้:
ตารางต่อไปนี้แสดงข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์หรือเครื่องมือที่ตรวจสอบเงื่อนไขนี้ บนเว็บไซต์ของอินสแตนซ์ของ SQL Server และรุ่นของผลิตภัณฑ์ SQL Server ที่กฎจะถูกประเมินโดยอัตโนมัติ
ยุบตารางนี้ขยายตารางนี้
ซอฟต์แวร์ของกฎชื่อเรื่องของกฎคำอธิบายกฎรุ่นของผลิตภัณฑ์ที่กฎจะถูกประเมิน
โปรแกรมช่วยแนะนำ system CenterFragmentations สูงของ SQL Server อาจปรับลดรุ่นประสิทธิภาพการทำงานของแบบสอบถามโปรแกรมช่วยแนะนำ system Center ตรวจสอบการกระจายตัวของตรรกะโดย avg_fragmentation_in_percent ค่าใน sys.dm_db_index_physical_stats สำหรับดัชนีแต่ละอินสแตนซ์ของฐานข้อมูลของเซิร์ฟเวอร์ SQL ถ้าการกระจายตัวของค่าเฉลี่ยสำหรับดัชนีหรือฮีปมากกว่าห้าเปอร์เซ็นต์ การแจ้งเตือนนี้ถูกสร้างขึ้น ทำตามคำแนะนำจากบทความนี้เพื่อแก้ไขปัญหาที่เกี่ยวข้องกับ fragmentations ที่ดัชนีที่สูงSQL Server 2008

SQL Server 2008 R2

2012 ของ SQL Server

คุณสมบัติ

หมายเลขบทความ (Article ID): 2755960 - รีวิวครั้งสุดท้าย: 27 กันยายน 2555 - Revision: 1.0
ใช้กับ
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Web
Keywords: 
kbsurveynew kbhowto kbexpertiseadvanced kbmt KB2755960 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2755960

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com