ใน SQL Server คุณควรแยก File Data Group หลักของคุณเป็นไฟล์ข้อมูลรองเมื่อใด


11

ขณะนี้ฐานข้อมูลของเรามี FileGroup เพียงรายการเดียวซึ่งมีข้อมูลประมาณ 8GB (แถวตารางดัชนีแคตตาล็อกข้อความแบบเต็ม)

เวลาที่ดีที่จะแยกไฟล์นี้เป็นไฟล์ข้อมูลรองคืออะไร? มีหลักเกณฑ์อะไรบ้างที่ฉันควรระวัง

คำตอบ:


20

คำถามนี้มีสองส่วนคือเมื่อใดจึงควรเพิ่ม FILEGROUP ใหม่และเมื่อใดจึงจะเพิ่มไฟล์ใหม่ในกลุ่มไฟล์ ก่อนอื่นเรามาพูดถึงทฤษฎี:

สิทธิของมาร์คเกี่ยวกับเหตุผลหลักคือประสิทธิภาพ

เหตุผลที่สองคือการกู้คืนระบบ ด้วย SQL Server 2005 และใหม่กว่าคุณสามารถกู้คืนกลุ่มไฟล์ได้ เมื่อเกิดภัยพิบัติคุณสามารถกู้คืนเฉพาะกลุ่มไฟล์หลักของคุณก่อนและนำฐานข้อมูลออนไลน์บางส่วนเพื่อสอบถาม ผู้ใช้สามารถเรียกใช้คิวรีขณะที่คุณกู้คืนกลุ่มไฟล์อื่น ๆ สิ่งนี้มีประโยชน์สำหรับฐานข้อมูลที่มีข้อมูลประวัติจำนวนมากซึ่งอาจไม่ต้องการทันทีหรือคลังข้อมูลที่ต้องการโหลดข้อมูลลงในตารางปัจจุบันโดยไม่จำเป็นต้องมีข้อมูลประวัติเพื่อการเข้าถึง

อีกเหตุผลคือโปรไฟล์การอ่าน / เขียนของกลุ่มข้อมูล หากคุณมีข้อมูลบางอย่างที่ถูกเขียนไปอย่างต่อเนื่องและข้อมูลอื่น ๆ ที่ได้รับกิจกรรมการอ่านจำนวนมากคุณสามารถสร้างที่เก็บข้อมูลประเภทต่างๆเพื่อรองรับความต้องการเหล่านั้น คุณสามารถวางของหนัก ๆ ไว้ในการจู่โจม 10 และปล่อยให้สิ่งที่อ่านลำเอียงถูกจู่โจมที่ถูกกว่า 5

ทีนี้มาคุยกับไฟล์กับกลุ่มไฟล์กัน เมื่อคุณวางวัตถุใน SQL Server คุณต้องวางวัตถุเหล่านั้นในระดับกลุ่มไฟล์ คุณสามารถลงจอดตารางหรือดัชนีในกลุ่มไฟล์ แต่คุณไม่สามารถเลือกไฟล์ที่ต้องการได้ ดังนั้นทุกสิ่งที่เราได้กล่าวถึงได้เพิ่มเกี่ยวกับกลุ่มไฟล์ - แต่เมื่อใดที่คุณจะเพิ่มไฟล์?

หากคุณกำลังออกแบบที่เก็บข้อมูลและคุณมีฮาร์ดไดรฟ์ 80 ตัวคุณสามารถแยกย่อยได้หลายวิธี:

  • พูลเดียว 80 ไดรฟ์
  • พูลสองไดรฟ์ 40 ไดรฟ์
  • พูลสี่ไดรฟ์ 20 ไดรฟ์ ฯลฯ ...

ระบบย่อยหน่วยเก็บข้อมูลที่ต่างกันมีโปรไฟล์ประสิทธิภาพที่แตกต่างกัน ฉันทำงานกับ SAN บางตัวที่ทำงานได้ดีที่สุดกับไดรฟ์อาร์เรย์ 12-16 ชุดและอะไรที่ใหญ่กว่านั้นก็ไม่ได้ปรับปรุงประสิทธิภาพเลย อีกตัวอย่างหนึ่งคือ SAN ที่มีการรวมหลายครั้ง: หากคุณมี HBA หลายตัวเชื่อมต่อเซิร์ฟเวอร์ของคุณกับที่เก็บข้อมูลของคุณและหากซอฟต์แวร์มัลติพา ธ ของคุณไม่ได้ใช้งาน / ใช้งานจริงคุณอาจต้องใช้หนึ่งอาร์เรย์ต่อเส้นทางเพื่อกระจายโหลด สี่เส้นทางสี่กลุ่มของไดรฟ์จะได้รับประสิทธิภาพที่ดีขึ้นสำหรับไดรฟ์ประเภทนั้น

ในกรณีดังกล่าวคุณจะได้รับสี่อาร์เรย์ที่แตกต่างกันสี่ไดรฟ์ที่แตกต่างกันภายใต้ Windows (เว้นแต่คุณจะใช้จุดเชื่อมต่อและแม้กระทั่งเป็นโฟลเดอร์ที่แตกต่างกัน) และคุณจะต้องใช้ไฟล์สี่ไฟล์ใน SQL Server ไฟล์แยกเหล่านั้นสามารถอยู่ในกลุ่มไฟล์เดียวกัน


1
ใช่ ... การวิเคราะห์ผลประโยชน์ สิ่งเดียวที่ฉันจะเพิ่มคือคุณสามารถปิดดัชนีการโหลดจากตารางที่เข้าถึงอย่างหนักไปยังแกนหมุน / กลุ่มไฟล์ของตนเองเพื่อเพิ่มประสิทธิภาพการทำงานแบบ async / read-ahead ฉันได้ทำเช่นนั้นในบางกรณีที่มีการปรับใช้ที่ใหญ่ขึ้นและช่วยให้ บริษัท ประหยัดค่าใช้จ่ายด้านฮาร์ดแวร์ถึงหมื่นดอลลาร์ที่ผู้ขาย SAN ของพวกเขาสาบานว่าจะต้องได้รับปริมาณงานที่ต้องการ
Michael K Campbell

6

เหตุผลหลักคือประสิทธิภาพ เมื่อคุณไม่มีความจุ IOPS ในไดรฟ์ดิสก์กลุ่มไฟล์หลักของคุณคุณจะต้องขยายไปยังกลุ่มไฟล์ที่สองเพื่อแยก IOPS กับดิสก์ / LUN หลาย ๆ ชุดทั้งนี้ขึ้นอยู่กับการกำหนดค่าที่เก็บข้อมูล

แก้ไข: แบรดวิลสันแสดงความคิดเห็นที่ดีเกี่ยวกับ SSD หากคุณใช้ระบบจัดเก็บข้อมูล SSD / SATA / FC คุณอาจต้องการมีกลุ่มไฟล์ที่แตกต่างกันในที่เก็บข้อมูลประเภทต่างๆ จากนั้นคุณสามารถวางตารางความต้องการ IOPS ขั้นสุดยอดของคุณลงบน SSD filegropus ในขณะที่ตารางประวัติ / สถิติอาจถูกจัดเก็บในกลุ่มไฟล์ SATA ราคาถูก


2
SSD มีโอกาสที่จะทำการเปลี่ยนแปลงอย่างมากในวิธีที่เราคิดเกี่ยวกับการแยกข้อมูลเนื่องจากความอิ่มตัวของมันนั้นยากกว่ามากเพียงใดเนื่องจากการหน่วงเวลาต่ำเป็นพิเศษ
Brad Wilson

แน่นอนจุดดี!
Mark S. Rasmussen

1

ฉันจะชี้ให้เห็นว่ามีความพร้อมใช้งานด้านการกู้คืนข้อมูล / ข้อมูลสำหรับคำถามนี้เช่นกัน ด้วยการใช้กลุ่มไฟล์หลายกลุ่มและไม่วางวัตถุที่ผู้ใช้กำหนดไว้ในกลุ่มไฟล์หลักคุณจะมีความยืดหยุ่นในการเปิดใช้งานการกู้คืนออนไลน์มากขึ้น สิ่งนี้อนุญาตให้เรียกคืนทีละน้อยที่ระดับกลุ่มไฟล์

การคืนค่าออนไลน์มีอยู่ในรุ่น Enterprise และ Developer ของ sql server หลังจากปี 2005

ความคิดอีกข้อหนึ่งที่นึกถึงคือการแยกข้อมูลอ้างอิงแบบอ่านอย่างเดียวออกจากข้อมูลธุรกรรม สำหรับฐานข้อมูลขนาดใหญ่สิ่งนี้สามารถลดระยะเวลาและ / หรือพื้นที่ที่ต้องใช้ในการสำรองข้อมูล

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