ขณะนี้ฐานข้อมูลของเรามี FileGroup เพียงรายการเดียวซึ่งมีข้อมูลประมาณ 8GB (แถวตารางดัชนีแคตตาล็อกข้อความแบบเต็ม)
เวลาที่ดีที่จะแยกไฟล์นี้เป็นไฟล์ข้อมูลรองคืออะไร? มีหลักเกณฑ์อะไรบ้างที่ฉันควรระวัง
ขณะนี้ฐานข้อมูลของเรามี FileGroup เพียงรายการเดียวซึ่งมีข้อมูลประมาณ 8GB (แถวตารางดัชนีแคตตาล็อกข้อความแบบเต็ม)
เวลาที่ดีที่จะแยกไฟล์นี้เป็นไฟล์ข้อมูลรองคืออะไร? มีหลักเกณฑ์อะไรบ้างที่ฉันควรระวัง
คำตอบ:
คำถามนี้มีสองส่วนคือเมื่อใดจึงควรเพิ่ม FILEGROUP ใหม่และเมื่อใดจึงจะเพิ่มไฟล์ใหม่ในกลุ่มไฟล์ ก่อนอื่นเรามาพูดถึงทฤษฎี:
สิทธิของมาร์คเกี่ยวกับเหตุผลหลักคือประสิทธิภาพ
เหตุผลที่สองคือการกู้คืนระบบ ด้วย SQL Server 2005 และใหม่กว่าคุณสามารถกู้คืนกลุ่มไฟล์ได้ เมื่อเกิดภัยพิบัติคุณสามารถกู้คืนเฉพาะกลุ่มไฟล์หลักของคุณก่อนและนำฐานข้อมูลออนไลน์บางส่วนเพื่อสอบถาม ผู้ใช้สามารถเรียกใช้คิวรีขณะที่คุณกู้คืนกลุ่มไฟล์อื่น ๆ สิ่งนี้มีประโยชน์สำหรับฐานข้อมูลที่มีข้อมูลประวัติจำนวนมากซึ่งอาจไม่ต้องการทันทีหรือคลังข้อมูลที่ต้องการโหลดข้อมูลลงในตารางปัจจุบันโดยไม่จำเป็นต้องมีข้อมูลประวัติเพื่อการเข้าถึง
อีกเหตุผลคือโปรไฟล์การอ่าน / เขียนของกลุ่มข้อมูล หากคุณมีข้อมูลบางอย่างที่ถูกเขียนไปอย่างต่อเนื่องและข้อมูลอื่น ๆ ที่ได้รับกิจกรรมการอ่านจำนวนมากคุณสามารถสร้างที่เก็บข้อมูลประเภทต่างๆเพื่อรองรับความต้องการเหล่านั้น คุณสามารถวางของหนัก ๆ ไว้ในการจู่โจม 10 และปล่อยให้สิ่งที่อ่านลำเอียงถูกจู่โจมที่ถูกกว่า 5
ทีนี้มาคุยกับไฟล์กับกลุ่มไฟล์กัน เมื่อคุณวางวัตถุใน SQL Server คุณต้องวางวัตถุเหล่านั้นในระดับกลุ่มไฟล์ คุณสามารถลงจอดตารางหรือดัชนีในกลุ่มไฟล์ แต่คุณไม่สามารถเลือกไฟล์ที่ต้องการได้ ดังนั้นทุกสิ่งที่เราได้กล่าวถึงได้เพิ่มเกี่ยวกับกลุ่มไฟล์ - แต่เมื่อใดที่คุณจะเพิ่มไฟล์?
หากคุณกำลังออกแบบที่เก็บข้อมูลและคุณมีฮาร์ดไดรฟ์ 80 ตัวคุณสามารถแยกย่อยได้หลายวิธี:
ระบบย่อยหน่วยเก็บข้อมูลที่ต่างกันมีโปรไฟล์ประสิทธิภาพที่แตกต่างกัน ฉันทำงานกับ SAN บางตัวที่ทำงานได้ดีที่สุดกับไดรฟ์อาร์เรย์ 12-16 ชุดและอะไรที่ใหญ่กว่านั้นก็ไม่ได้ปรับปรุงประสิทธิภาพเลย อีกตัวอย่างหนึ่งคือ SAN ที่มีการรวมหลายครั้ง: หากคุณมี HBA หลายตัวเชื่อมต่อเซิร์ฟเวอร์ของคุณกับที่เก็บข้อมูลของคุณและหากซอฟต์แวร์มัลติพา ธ ของคุณไม่ได้ใช้งาน / ใช้งานจริงคุณอาจต้องใช้หนึ่งอาร์เรย์ต่อเส้นทางเพื่อกระจายโหลด สี่เส้นทางสี่กลุ่มของไดรฟ์จะได้รับประสิทธิภาพที่ดีขึ้นสำหรับไดรฟ์ประเภทนั้น
ในกรณีดังกล่าวคุณจะได้รับสี่อาร์เรย์ที่แตกต่างกันสี่ไดรฟ์ที่แตกต่างกันภายใต้ Windows (เว้นแต่คุณจะใช้จุดเชื่อมต่อและแม้กระทั่งเป็นโฟลเดอร์ที่แตกต่างกัน) และคุณจะต้องใช้ไฟล์สี่ไฟล์ใน SQL Server ไฟล์แยกเหล่านั้นสามารถอยู่ในกลุ่มไฟล์เดียวกัน
เหตุผลหลักคือประสิทธิภาพ เมื่อคุณไม่มีความจุ IOPS ในไดรฟ์ดิสก์กลุ่มไฟล์หลักของคุณคุณจะต้องขยายไปยังกลุ่มไฟล์ที่สองเพื่อแยก IOPS กับดิสก์ / LUN หลาย ๆ ชุดทั้งนี้ขึ้นอยู่กับการกำหนดค่าที่เก็บข้อมูล
แก้ไข: แบรดวิลสันแสดงความคิดเห็นที่ดีเกี่ยวกับ SSD หากคุณใช้ระบบจัดเก็บข้อมูล SSD / SATA / FC คุณอาจต้องการมีกลุ่มไฟล์ที่แตกต่างกันในที่เก็บข้อมูลประเภทต่างๆ จากนั้นคุณสามารถวางตารางความต้องการ IOPS ขั้นสุดยอดของคุณลงบน SSD filegropus ในขณะที่ตารางประวัติ / สถิติอาจถูกจัดเก็บในกลุ่มไฟล์ SATA ราคาถูก
ฉันจะชี้ให้เห็นว่ามีความพร้อมใช้งานด้านการกู้คืนข้อมูล / ข้อมูลสำหรับคำถามนี้เช่นกัน ด้วยการใช้กลุ่มไฟล์หลายกลุ่มและไม่วางวัตถุที่ผู้ใช้กำหนดไว้ในกลุ่มไฟล์หลักคุณจะมีความยืดหยุ่นในการเปิดใช้งานการกู้คืนออนไลน์มากขึ้น สิ่งนี้อนุญาตให้เรียกคืนทีละน้อยที่ระดับกลุ่มไฟล์
การคืนค่าออนไลน์มีอยู่ในรุ่น Enterprise และ Developer ของ sql server หลังจากปี 2005
ความคิดอีกข้อหนึ่งที่นึกถึงคือการแยกข้อมูลอ้างอิงแบบอ่านอย่างเดียวออกจากข้อมูลธุรกรรม สำหรับฐานข้อมูลขนาดใหญ่สิ่งนี้สามารถลดระยะเวลาและ / หรือพื้นที่ที่ต้องใช้ในการสำรองข้อมูล