อาจลดประสิทธิภาพการทำงานแบบสอบถาม 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 Center | Fragmentations สูงของ 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
| kbsurveynew kbhowto kbexpertiseadvanced kbmt KB2755960 KbMtth |
แปลโดยคอมพิวเตอร์ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:
2755960
(http://support.microsoft.com/kb/2755960/en-us/
)