คำถามติดแท็ก index-maintenance


1
แนวทางสำหรับการบำรุงรักษาดัชนีข้อความแบบเต็ม
แนวทางใดที่ควรได้รับการพิจารณาสำหรับการรักษาดัชนีข้อความแบบเต็ม? ฉันควรสร้างใหม่หรือจัดระเบียบแค็ตตาล็อกข้อความแบบเต็ม (ดูBOL ) หรือไม่ จังหวะการบำรุงรักษาที่เหมาะสมคืออะไร ฮิวริสติกแบบใดที่คล้ายกับเกณฑ์การแตกแฟรกเมนต์ 10% และ 30%) สามารถใช้เพื่อกำหนดว่าเมื่อใดที่ต้องมีการบำรุงรักษา (ทุกอย่างด้านล่างเป็นเพียงข้อมูลเพิ่มเติมที่อธิบายรายละเอียดของคำถามและแสดงสิ่งที่ฉันคิดเกี่ยวกับจนถึงตอนนี้) ข้อมูลเพิ่มเติม: การวิจัยเริ่มต้นของฉัน มีจำนวนมากของทรัพยากรในการบำรุงรักษาดัชนี B-ต้นไม้ (เช่นคำถามนี้ , สคริปต์ Ola Hallengren ของและบล็อกโพสต์เกี่ยวกับเรื่องต่าง ๆ นานาจากเว็บไซต์อื่น ๆ ) อย่างไรก็ตามฉันพบว่าไม่มีทรัพยากรเหล่านี้ให้คำแนะนำหรือสคริปต์สำหรับการบำรุงรักษาดัชนี fulltext มีเอกสารของ Microsoftที่กล่าวถึงการจัดเรียงดัชนีดัชนีต้นไม้ของตารางฐานและจากนั้นดำเนินการ REORGANIZE ในแค็ตตาล็อกข้อความอาจปรับปรุงประสิทธิภาพ แต่ไม่ได้สัมผัสกับคำแนะนำเฉพาะใด ๆ เพิ่มเติม ฉันยังพบคำถามนี้แต่ส่วนใหญ่เน้นไปที่การติดตามการเปลี่ยนแปลง (การอัปเดตข้อมูลไปยังตารางอ้างอิงในดัชนี fulltext) อย่างไรและไม่ใช่ประเภทของการบำรุงรักษาตามกำหนดเวลาปกติที่สามารถเพิ่มประสิทธิภาพของดัชนีได้ ข้อมูลเพิ่มเติม: การทดสอบประสิทธิภาพขั้นพื้นฐาน นี้SQL ซอมีรหัสที่สามารถใช้ในการสร้างดัชนีข้อความเต็มกับAUTOการติดตามการเปลี่ยนแปลงและตรวจสอบทั้งขนาดและประสิทธิภาพการทำงานของดัชนีแบบสอบถามเป็นข้อมูลในตารางที่มีการแก้ไข เมื่อฉันเรียกใช้ตรรกะของสคริปต์บนสำเนาของข้อมูลการผลิตของฉัน (ตรงข้ามกับข้อมูลที่ประดิษฐ์ขึ้นในซอ) นี่คือบทสรุปของผลลัพธ์ที่ฉันเห็นหลังจากแต่ละขั้นตอนการปรับเปลี่ยนข้อมูล: แม้ว่าคำแถลงการปรับปรุงในสคริปต์นี้มีการวางแผนอย่างเป็นธรรม แต่ดูเหมือนว่าข้อมูลนี้จะแสดงให้เห็นว่ามีจำนวนมากที่ต้องได้รับจากการบำรุงรักษาตามปกติ ข้อมูลเพิ่มเติม: ความคิดเริ่มต้น …

6
วิธีการป้องกันไม่ให้บันทึกธุรกรรมเต็มระหว่างการจัดระเบียบดัชนีใหม่
เรามีหลายเครื่องที่เราได้จัดสรรขนาดของบันทึกการทำธุรกรรมไว้ที่ 50GB ขนาดของตารางที่ฉันพยายามจัดระเบียบใหม่คือ 55 - 60 gb แต่จะเพิ่มขึ้นอย่างต่อเนื่อง เหตุผลหลักที่ฉันต้องการจัดระเบียบใหม่คือการเรียกคืนพื้นที่และผลประโยชน์ใด ๆ เนื่องจากเป็นโบนัสเพิ่มเติม ระดับการแตกแฟรกเมนต์ของตารางคือ 30 - 35% ในเครื่องเหล่านี้บางเครื่องฉันได้รับข้อผิดพลาด "transaction log full" และการจัดระเบียบใหม่ล้มเหลว ขนาดบันทึกธุรกรรมสูงสุดถึง 48gb เป็นวิธีที่ดีในการตอบโต้สิ่งนี้คืออะไร? เราไม่ได้เปิดการเพิ่มอัตโนมัติและฉันลังเลที่จะทำเช่นนั้น ฉันสามารถเพิ่มขนาดบันทึกเป็นค่าที่มากขึ้น แต่เมื่อขนาดตารางเพิ่มขึ้นในอนาคตค่าอาจไม่เพียงพอ นอกจากนี้ยังเอาชนะวัตถุประสงค์ในการจัดระเบียบใหม่เพื่อเรียกคืนพื้นที่ถ้าฉันจะเพิ่มขนาดบันทึกอย่างเท่าเทียมกัน ความคิดเห็นใด ๆ เกี่ยวกับวิธีที่ฉันสามารถตอบโต้เรื่องนี้ได้อย่างมีประสิทธิภาพ การใช้โหมดแบบกลุ่มไม่ใช่ตัวเลือกเนื่องจากการสูญเสียข้อมูลไม่เป็นที่ยอมรับ

3
การค้นหาและการอัปเดตช้ามากหลังจากดัชนีเพิ่มประสิทธิภาพ
ฐานข้อมูล SQL Server 2017 Enterprise CU16 14.0.3076.1 เราเพิ่งพยายามเปลี่ยนจากดัชนีเริ่มต้นสร้างงานบำรุงรักษาไป Ola IndexOptimizeHallengren งานสร้างดัชนีเริ่มต้นใหม่ทำงานเป็นเวลาสองสามเดือนโดยไม่มีปัญหาใด ๆ และแบบสอบถามและการปรับปรุงกำลังทำงานด้วยเวลาดำเนินการที่ยอมรับได้ หลังจากทำงานIndexOptimizeบนฐานข้อมูล: EXECUTE dbo.IndexOptimize @Databases = 'USER_DATABASES', @FragmentationLow = NULL, @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', @FragmentationLevel1 = 5, @FragmentationLevel2 = 30, @UpdateStatistics = 'ALL', @OnlyModifiedStatistics = 'Y' ประสิทธิภาพลดลงอย่างมาก คำสั่งการปรับปรุงที่ใช้เวลา 100 มิลลิวินาทีก่อนที่จะIndexOptimizeใช้เวลา 78.000ms หลังจากนั้น (โดยใช้แผนเหมือนกัน) และข้อความค้นหาก็มีประสิทธิภาพที่แย่กว่านั้นอีกหลายคำสั่ง เนื่องจากสิ่งนี้ยังคงเป็นฐานข้อมูลทดสอบ (เรากำลังย้ายระบบการผลิตจาก …

2
การบำรุงรักษาดัชนี MySQL
ฉันทำวิจัยจำนวนมากเกี่ยวกับวิธีการบำรุงรักษาดัชนีใน MySQL เพื่อป้องกันการแตกแฟรกเมนต์และเพื่อเพิ่มประสิทธิภาพการดำเนินการของแบบสอบถามบางอย่าง ฉันคุ้นเคยกับสูตรนั้นที่คำนวณอัตราส่วนระหว่างพื้นที่ว่างสูงสุดที่มีอยู่สำหรับตาราง VS พื้นที่ที่ใช้โดยข้อมูลและดัชนี อย่างไรก็ตามคำถามหลักของฉันยังคงไม่มีคำตอบ บางทีนี่อาจเป็นเพราะฉันคุ้นเคยกับการบำรุงรักษาดัชนีใน SQL Server และฉันมักจะคิดว่าใน MySQL มันควรจะคล้ายกัน ในเซิร์ฟเวอร์ SQL คุณสามารถมีดัชนีได้หลายดัชนีและแต่ละดัชนีสามารถมีการแตกแฟรกเมนต์ระดับต่างกัน จากนั้นคุณสามารถเลือกและดำเนินการ 'REORGANIZE' หรือ 'REBUILD' ในดัชนีนั้นโดยไม่กระทบต่อส่วนที่เหลือ ความรู้ของฉันอย่างดีที่สุดไม่มี 'การแตกแฟรกเมนต์ของตาราง' และ SQL Server ไม่ได้จัดเตรียมเครื่องมือใด ๆ เพื่อแก้ไข 'การแตกแฟรกเมนต์ตาราง' สิ่งที่มีให้คือเครื่องมือในการตรวจสอบการแตกแฟรกเมนต์ของดัชนี (เข้าใจเช่นอัตราส่วนระหว่างจำนวนหน้าที่ใช้โดยดัชนีเทียบกับความสมบูรณ์ของหน้าและความต่อเนื่องกัน) รวมทั้งการกระจายตัวของภายในและภายนอก ทั้งหมดนี้ค่อนข้างตรงไปตรงมาที่จะเข้าใจอย่างน้อยก็สำหรับฉัน ตอนนี้เมื่อถึงคราวที่ต้องรักษาดัชนีใน MySQL จะมีเพียงแนวคิดของ 'การแตกแฟรกเมนต์ของตารางดังกล่าวข้างต้น ตารางใน MySQL สามารถมีดัชนีได้หลายดัชนี แต่เมื่อฉันตรวจสอบ 'อัตราส่วนการกระจายตัวของ' ด้วยสูตรที่มีชื่อเสียงนั้นฉันไม่เห็นการกระจายตัวของดัชนีแต่ละรายการ แต่ตารางโดยรวม เมื่อฉันต้องการเพิ่มประสิทธิภาพดัชนีใน MySQL ฉันไม่ได้เลือกดัชนีเฉพาะเพื่อดำเนินการ (เช่นใน SQL …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.