ฐานข้อมูลแอปพลิเคชันผู้ขายของเรานั้นเข้มงวดมาก TempDB
เซิร์ฟเวอร์เป็นเสมือน (VMWare) ที่มี 40 คอร์และ RAM 768GB โดยใช้ SQL 2012 Enterprise SP3
ฐานข้อมูลทั้งหมดรวมถึง TempDB อยู่ใน Tier 1 SSD ใน SAN เรามีไฟล์ข้อมูล tempdb 10 ไฟล์แต่ละไฟล์มีขนาด 1GB และมีการเติบโตอัตโนมัติ เช่นเดียวกันกับไฟล์บันทึก 70GB มีการตั้งค่าค่าสถานะการสืบค้นกลับ 1117 & 1118 แล้ว
sys.dm_io_virtual_file_stats แสดงมากกว่า 50 Terabytes อ่าน / เขียนข้อมูล tempdb & ล็อกไฟล์ในเดือนที่ผ่านมาโดยมี io_stall สะสม 250 ชั่วโมงหรือ 10 วัน
เราได้ปรับแต่งรหัสผู้ขายและ SP ในช่วง 2 ปีที่ผ่านมา
ตอนนี้เรากำลังคิดที่จะวางไฟล์ tempdb ไว้ใน RAM Drive เนื่องจากเรามีหน่วยความจำมากมาย เนื่องจาก tempdb ถูกทำลาย / สร้างใหม่เมื่อรีบูทเซิร์ฟเวอร์จึงเป็นตัวเลือกที่เหมาะสมที่สุดที่จะวางบนหน่วยความจำที่ระเหยได้ซึ่งยังถูกล้างออกเมื่อรีบูทเซิร์ฟเวอร์
ฉันได้ทดสอบสิ่งนี้ในสภาพแวดล้อมที่ต่ำลงและมันส่งผลให้เวลาในการสืบค้นเร็วขึ้น แต่เพิ่มการใช้งาน CPU เนื่องจาก CPU ทำงานได้มากขึ้นแทนที่จะต้องรอกับไดรฟ์ tempdb ที่ช้า
มีคนอื่นวาง tempdb ของพวกเขาบน RAM ในระบบการผลิตสูง oltp? มีข้อเสียที่สำคัญหรือไม่? มีผู้ค้ารายใดบ้างที่เลือกหรือหลีกเลี่ยงเป็นพิเศษ