การตัดสินใจที่จะแยกฐานข้อมูลในกลุ่มไฟล์ที่แตกต่างกันควรทำหลังจากทำการวิเคราะห์ขนาดปัจจุบันและการเติบโตของตารางในอนาคต ในความคิดของฉันถ้าคุณไม่มีฐานข้อมูลหรือตารางจำนวนมากที่มีแถวนับล้านแถวคุณควรพิจารณาข้อดีข้อเสียอย่างรอบคอบเนื่องจากคุณอาจสร้างปัญหาด้านประสิทธิภาพมากกว่าที่คุณแก้ไข
มีบางสถานการณ์ที่น่าสนใจในบางสถานที่:
- 2 กลุ่มไฟล์: ข้อมูลและดัชนี
- 3 กลุ่มไฟล์: ตารางอ่านอย่างเดียว, อ่านเขียน, ดัชนี
- หลายกลุ่มไฟล์: อ่านอย่างเดียว, อ่าน - เขียน, ดัชนี, ตารางคีย์ 1, ตารางคีย์ 2, ...
คุณต้องวิเคราะห์สภาพแวดล้อมของคุณเพื่อตัดสินใจว่ากลุ่มไฟล์จะช่วยให้ SQL Server ของคุณเติบโตการใช้งานและความต้องการด้านประสิทธิภาพหรือไม่
ตัวบ่งชี้สำคัญบางตัวเพื่อย้ายไปยังหลายกลุ่มไฟล์ (จากบทความนี้ ):
- เมื่อการเข้าคิวดิสก์ทำให้แอปพลิเคชั่นและปัญหาผู้ใช้เกิดปัญหา
- หากเป็นกรณีนี้ให้พิจารณาการใช้ประโยชน์จากดิสก์ไดรฟ์เพิ่มเติมด้วยกลุ่มไฟล์ใหม่ซึ่งมีตารางแบบเข้มข้นของ IO
- เมื่อตารางเฉพาะ 10% หรือมากกว่าของฐานข้อมูล
- หากเป็นกรณีนี้ให้พิจารณาย้ายตารางขนาดใหญ่เหล่านี้เพื่อแยกกลุ่มไฟล์ในดิสก์ไดรฟ์พื้นฐานที่แยกต่างหาก
- ขึ้นอยู่กับขนาดของตารางตามสัดส่วนที่เหลือของตารางพิจารณาสร้างกลุ่มไฟล์สำหรับแต่ละตาราง
- เมื่อดัชนีที่ไม่ใช่คลัสเตอร์และพื้นที่ข้อมูลมีค่าเท่ากันบนตารางขนาดใหญ่
- หากเป็นกรณีนี้ให้พิจารณาแยกข้อมูลและดัชนีคลัสเตอร์ออกจากดัชนีที่ไม่ใช่คลัสเตอร์
- เมื่อเปอร์เซ็นต์ที่เท่ากันของข้อมูลแบบอ่านอย่างเดียวและอ่านเขียนอยู่ในฐานข้อมูล
- หากเป็นกรณีนี้ให้พิจารณาแยกข้อมูลอ่านอย่างเดียวในกลุ่มไฟล์แยกต่างหากเป็นข้อมูลอ่านเขียน
- เมื่อเวลาไม่เพียงพอที่จะทำการบำรุงรักษาฐานข้อมูล
- หากเป็นกรณีนี้ให้พิจารณาแบ่งตารางขนาดใหญ่ออกเป็นกลุ่มไฟล์แยกกันบนดิสก์ที่ต่างกันและทำการบำรุงรักษาแบบขนาน
- เมื่อธุรกิจหรือแอปพลิเคชันจะเปลี่ยนแปลงอย่างมีนัยสำคัญและข้อมูลจะเติบโตในอัตราที่สูงขึ้นมาก
- หากเป็นกรณีนี้ให้พิจารณาทำงานกับผู้ใช้เพื่อทำความเข้าใจกับการเติบโตที่อาจเกิดขึ้น
- เมื่อข้อมูลที่เก็บถาวรอยู่ในฐานข้อมูลเดียวกันกับข้อมูลการผลิต
- หากเป็นกรณีนี้ให้พิจารณาแยกกลุ่มไฟล์หรือหนึ่งในเทคนิคในคำแนะนำนี้ - การเก็บถาวรข้อมูลใน SQL Server
หากคุณพบว่ากลุ่มไฟล์สามารถปรับปรุงประสิทธิภาพของฐานข้อมูลของคุณให้เขียนโค้ดและทดสอบกระบวนการในสภาพแวดล้อมการจัดเตรียมก่อนที่คุณจะนำการเปลี่ยนแปลงไปใช้กับเซิร์ฟเวอร์ที่ใช้งานจริงของคุณ เตรียมการวัดบางส่วนก่อนที่คุณจะใช้การเปลี่ยนแปลงและเปรียบเทียบก่อนและหลัง เนื่องจากกระบวนการเหล่านี้อาจใช้ทรัพยากรมากและใช้เวลานานให้ทำตามขั้นตอนเหล่านี้ในช่วงเวลาการบำรุงรักษา
อย่าลืมเมื่อสร้างวัตถุใหม่ (ตารางและดัชนี) ตรวจสอบให้แน่ใจว่าวัตถุนั้นถูกสร้างขึ้นในกลุ่มไฟล์ที่ถูกต้องเพื่อให้แน่ใจว่าประสิทธิภาพที่คาดหวังและตรวจสอบความถูกต้องของวัตถุฐานข้อมูลเป็นระยะอยู่ในกลุ่มไฟล์ที่ถูกต้อง