VLF สำคัญแค่ไหนเมื่อพิจารณาประสิทธิภาพของฐานข้อมูล อะไรจะอธิบายสถานการณ์ที่เหมาะสมสำหรับ VLF
VLF สำคัญแค่ไหนเมื่อพิจารณาประสิทธิภาพของฐานข้อมูล อะไรจะอธิบายสถานการณ์ที่เหมาะสมสำหรับ VLF
คำตอบ:
ไฟล์บันทึกเสมือนคืออะไร
SQL Server แบ่งไฟล์บันทึกธุรกรรมสำหรับแต่ละฐานข้อมูลเป็นชิ้นเล็ก ๆ เรียกว่า 'ไฟล์บันทึกเสมือน' (หรือ VLF สำหรับระยะสั้น) ฟังก์ชั่นหลักของพวกเขาคือตัวทำเครื่องหมายที่ถูกตัดทอนที่การสำรองข้อมูลบันทึกนั่นคือ SQL Server จะล้าง (และทำเครื่องหมายสำหรับการกลับมาใช้ใหม่) VLF ที่ว่างเปล่าอย่างสมบูรณ์ MSDN มีชิ้นส่วนในการเข้าสู่ระบบการทำธุรกรรม - สถาปัตยกรรมทางกายภาพ
อะไรเป็นตัวกำหนดจำนวน VLF
แต่ละครั้งที่ล็อกไฟล์โตขึ้น (ไม่ว่าจะผ่าน autogrowth หรือ manual growth) ส่วนใหม่ของล็อกไฟล์จะถูกแบ่งออกเป็นจำนวน VLF ตามหมดจดตามขนาดของส่วนใหม่ (ล็อกธุรกรรมที่มีอยู่ถูกทิ้งไว้ตามลำพัง) ดังนั้นการตั้งค่า autogrowth ขนาดเล็ก (เช่น 10% autogrowth ที่เป็นค่าเริ่มต้น) จะทำให้ VLF จำนวนมากถูกสร้างขึ้น
อะไรคือความหมายของ VLF จำนวนมาก?
ปัญหาหลักสาเหตุ VLF จำนวนมากคือ:
DBCC
เนื่องจากใช้สแน็ปช็อตฐานข้อมูลในพื้นหลังเพื่ออำนวยความสะดวกในการตรวจสอบความสอดคล้องโดยไม่ปิดกั้น)ฉันจะทราบได้อย่างไรว่าฐานข้อมูลของฉันมีกี่ VLF
DBCC LOGINFO
จะส่งคืน 1 แถวสำหรับ VLF แต่ละรายการในบันทึกธุรกรรมของฐานข้อมูลของคุณ คำถามนี้มีสคริปต์ที่มีประโยชน์สองสามข้อสำหรับการใช้งานกับฐานข้อมูลทั้งหมดบนเซิร์ฟเวอร์
VLF มีจำนวนเท่าใดเกินไป
นั่นคือการตัดสินที่คุณต้องทำเพื่อตัวเอง กฎส่วนบุคคลของฉันคือว่าภายใต้ 50 ไม่คุ้มกับ messing และมากกว่า 100 (หรือมากกว่านั้น) และฉันแก้ไขการตั้งค่า autogrowth และทำบันทึกจิตไป (ในหน้าต่างการบำรุงรักษาถัดไป) หดตัวและปลูกบันทึกใหม่ .
ช่วยด้วย! ฉันมี VLF แสนล้านและการกู้คืนฐานข้อมูลใช้เวลาทั้งวัน!
ร่างสั้น (จากบล็อกของ Kimberly Tripp ):
BACKUP LOG
)DBCC SHRINKFILE
ด้วยTRUNCATEONLY
เพื่อย่อขนาดไฟล์บันทึกให้เล็กที่สุดเท่าที่จะเป็นไปได้ALTER DATABASE [...] MODIFY FILE [...] SIZE=newsize
การปรับขนาดบันทึกธุรกรรมของคุณในขั้นตอนเดียว **** หมายเหตุ - หากคุณมีไฟล์บันทึกที่มีขนาดใหญ่มาก (หลายสิบ GB หรือมากกว่า) คุณอาจต้องการปรับขนาดในหลายขั้นตอนเพื่อรับ VLFs ในจำนวนที่เหมาะสมด้วยขนาดที่เหมาะสมเพื่อหลีกเลี่ยงการสำรองข้อมูลปูม 'ก้อน' มากเกินไป ตั้งแต่ VLFs เป็นหน่วยของการตัดที่พวกเขายังตรวจสอบบันทึกขนาดการสำรองข้อมูลตามรายละเอียดในบล็อกของคิม