วิธีปฏิบัติที่ดีที่สุดสำหรับไฟล์บันทึก tempdb


11

ฉันได้อ่านหลายบล็อกที่นี่และมีเกี่ยวกับวิธีการกำหนดค่า tempdb แฟ้มข้อมูล แต่ไม่ได้ฉันพบข้อมูลใด ๆ เกี่ยวกับการล็อกไฟล์ tempdb

นี่เป็นกลยุทธ์ที่ฉันใช้กับ tempdb ของฉัน:

  • ฉันใช้คำแนะนำของ Paul Randalในการแบ่งไฟล์ข้อมูล tempdb ของฉัน
  • ฉันได้ตั้งค่าขนาดของไฟล์ข้อมูล tempdb ให้เป็นค่าสูงสุดและปิดการใช้งานอัตโนมัติ ตัวอย่างเช่นฉันมีพื้นที่ว่างในดิสก์ 100GB และตั้งขนาดของไฟล์ข้อมูล 8 tempdb ของฉันเป็น 10gb ต่อไฟล์ วิธีนี้ช่วยป้องกันการแตกแฟรกเมนต์บนดิสก์ตามที่ Brent Ozar แนะนำและฉันมี 20GB ฟรีสำหรับไฟล์บันทึกของฉัน

แต่ชอบพูดว่าไม่มีใครจะพูดคุยเกี่ยวกับแฟ้มบันทึก tempdb ฉันควรทำอย่างไรกับมัน? ในการตั้งค่าของฉันไฟล์นี้อยู่ในที่เดียวกับไฟล์ข้อมูล tempdb ขนาดและค่า autogrowth ที่ฉันควรใช้กับล็อกไฟล์ tempdb คืออะไร


4
ไม่มีคำตอบวิเศษสำหรับเรื่องนี้ยกเว้นว่าฉันจะไม่ปิดการใช้งาน autogrowth สำหรับข้อมูล tempdb หรือบันทึกเว้นแต่ว่าคุณต้องการให้ระบบเข้ามาหยุดการร้องเสียงกรี๊ด ฉันจะไม่ปิดการใช้งาน autogrow ในไฟล์ใด ๆ เพราะไม่ว่าคุณจะวางแผนได้ดีแค่ไหนก็มีสถานการณ์ที่ผิดปกติอยู่เสมอ
Aaron Bertrand

2
@AaronBertrand: เปิดใช้งาน autogrowth บน tempdb ขนาดเต็มจะไม่ช่วย พวกเขาอยู่ในระดับสูงสุดแล้วพวกเขาสามารถอยู่ในไดรฟ์ ไม่มีพื้นที่ว่างในดิสก์ที่สามารถใช้งานได้อีกต่อไป นี่คือเหตุผลที่ฉันปิดการใช้งาน autogrowth
Alexandre Jobin

2
ถ้าเช่นนั้นมันจะไม่สำคัญหากปิดใช้งานหรือไม่ หากจำเป็นต้องใช้ autogrow มันจะล้มเหลวด้วยวิธีใดวิธีหนึ่ง หากคุณเปิดใช้งานทิ้งไว้นั่นเป็นอีกสิ่งหนึ่งที่คุณต้องเปลี่ยนน้อยเมื่อคุณรู้ว่าคุณอาจต้องการย้ายมันไปยังไดรฟ์ที่ใหญ่กว่า
Aaron Bertrand

1
PS 8 x 20> 100
Aaron Bertrand

1
การแยกไฟล์ของคุณไม่จำเป็นต้องเป็น "การตั้งค่าที่ดี" ขึ้นอยู่กับการกำหนดค่าฮาร์ดแวร์ของคุณ ซึ่งคุณไม่ได้ให้มา
พอล

คำตอบ:


5

มันขึ้นอยู่กับจำนวนข้อมูลที่จะไหลผ่านบันทึกธุรกรรม ดูว่าบันทึกวันนี้ใหญ่แค่ไหน คุณต้องกำหนดค่าบันทึกให้มีขนาดอย่างน้อยเมื่อ SQL เริ่มทำงาน สำหรับลูกค้าของฉันส่วนใหญ่พวกเขาจบด้วยบันทึกธุรกรรมขนาด 3-4 Gigg สำหรับ tempdb ซึ่งมี VLF เพียงไม่กี่ตัวและทุกอย่างทำงานได้ดีและราบรื่น


0

ฉันถูกบอกเสมอว่าจะเก็บไฟล์บันทึกไว้ในฟิสิคัลอาร์เรย์ / ดิสก์แยกต่างหากหากฮาร์ดแวร์ของคุณสามารถเขียนข้อมูลและล็อกพร้อมกันเพื่อปรับปรุงประสิทธิภาพ ฉันเดาว่าข้อ จำกัด ที่วางไข่ขีด จำกัด 20G tempdb ของคุณอาจกำหนดคำตอบสำหรับขนาด สำหรับ autogrowth นั้นอาจขึ้นอยู่กับธุรกรรมที่คุณใช้รวมถึงพื้นที่ว่างที่มีอยู่และทรัพยากรอื่น ๆ บนดิสก์ ฉันมักจะเลือก 1 / 6th ของขนาดเริ่มต้นโดยพลการ


0

Aaron กำหนดค่า TempDB ให้เหมาะสมนั้นขึ้นอยู่กับตัวแปรจำนวนมากเช่นคุณวางแผนที่จะใช้การแยกสแน็ปช็อตหรือไม่ ฯลฯ ต่อไปนี้เป็นเอกสารไวท์เปเปอร์ SQL 2005รุ่นเก่าจาก MS / TNที่อาจช่วยคุณได้ ดูที่ "ช่องว่างที่จำเป็นสำหรับการบันทึก tempdb" โดยเฉพาะเพื่อให้คุณสามารถดูรายการธุรกรรมที่บันทึกไว้ในบันทึก tempdb เพื่อให้คุณสามารถตั้งค่าต่างๆ มีแนวโน้มว่าจะเป็นสิ่งที่คุณจะต้องตรวจสอบและปรับแต่งเมื่อเวลาผ่านไป

เท่าที่ authogrowth สำหรับ tempdb ฉันได้ปิดการใช้งานนี้อย่างไม่เต็มใจบนเซิร์ฟเวอร์การรายงานในอดีตและพฤติกรรมที่ฉันมีประสบการณ์คือมันทำให้ธุรกรรมที่ใช้เวลานานในการยกเลิกและย้อนกลับซึ่งทำให้พื้นที่บันทึกว่างในทันที แต่อาจขึ้นอยู่กับ ประเภทของการทำธุรกรรมซึ่งในกรณีของฉันมีขนาดใหญ่และเข้าร่วมการดำเนินงาน (แบบสอบถามแบบสอบถามรายงานที่เขียนไม่ดี) ฉันเห็นด้วยกับ Aaron และขอแนะนำให้หลีกเลี่ยงสิ่งนี้หากทำได้โดยเฉพาะอย่างยิ่งในสถานการณ์ปริมาณธุรกรรมที่สูง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.