SQL Server - Section1 - ما هي Filegroups في SQL Server؟

ما هي Filegroups في SQL Server؟

في SQL Server، تُستخدم الـ Filegroups لتنظيم وتوزيع البيانات في قاعدة البيانات عبر عدة ملفات. وهي عبارة عن حاويات منطقية لمجموعة من ملفات البيانات.


📦 لماذا نستخدم Filegroups؟

  • توزيع الجداول والفهارس على أقراص مختلفة لزيادة الأداء.
  • إدارة أفضل للنسخ الاحتياطية والنسخ الجزئي.
  • سهولة التحكم في الملفات عند الامتلاء أو التوسعة.

✅ الأنواع الأساسية للـ Filegroups

النوع الوصف
PRIMARY هو الـ filegroup الأساسي ويحتوي على ملف .mdf ويُنشأ تلقائيًا.
User-defined ملف مجموعات تُنشأ يدويًا ويمكن تخزين جداول وفهارس فيها.
FILESTREAM مخصص لتخزين البيانات غير المهيكلة مثل الصور والفيديو.

🧪 مثال عملي على إنشاء Filegroup


CREATE DATABASE MyDB
ON PRIMARY
(
  NAME = 'MyDB_data',
  FILENAME = 'D:\Data\MyDB_data.mdf'
),
FILEGROUP SalesGroup
(
  NAME = 'SalesData1',
  FILENAME = 'D:\Data\SalesData1.ndf'
)
LOG ON
(
  NAME = 'MyDB_log',
  FILENAME = 'D:\Logs\MyDB_log.ldf'
);

⬅ في هذا المثال، أنشأنا قاعدة بيانات تحتوي على:

  • PRIMARY filegroup لملف البيانات الرئيسي
  • SalesGroup وهو filegroup إضافي
  • ملف سجل العمليات .ldf

📌 تعيين جدول إلى Filegroup معين

يمكنك تحديد الـ filegroup عند إنشاء جدول كالتالي:


CREATE TABLE Orders (
  OrderID int PRIMARY KEY,
  OrderDate datetime
) ON SalesGroup;

⬅ هذا الجدول سيتم تخزينه داخل الـ filegroup المسمى SalesGroup.


📝 ملاحظات مهمة:

  • لا يمكن حذف الـ PRIMARY filegroup.
  • يمكنك تعيين Filegroup افتراضي باستخدام الأمر:

ALTER DATABASE MyDB MODIFY FILEGROUP SalesGroup DEFAULT;
  • استخدم الأمر sys.filegroups و sys.database_files لمراجعة تفاصيل الملف.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework