توضیح و مثال جامع برای Tablespace در MSSQL Server
Tablespace در MSSQL Server یک واحد منطقی برای ذخیرهسازی دادهها در پایگاه داده است. Tablespace ها به شما این امکان را میدهند که دادهها را در مکانهای مختلف فیزیکی ذخیره کنید، مدیریت فضای ذخیرهسازی را آسانتر کنید و عملکرد پایگاه داده را بهینه کنید.
مزایای استفاده از Tablespace:
- مدیریت آسان فضای ذخیرهسازی: Tablespace ها به شما این امکان را میدهند که دادهها را بر اساس نیازهای خود در مکانهای مختلف فیزیکی ذخیره کنید. به عنوان مثال، میتوانید جداول مهم را در دیسکهای پرسرعت و جداول کمتر استفادهشده را در دیسکهای کندتر ذخیره کنید.
- بهبود عملکرد: Tablespace ها میتوانند به شما در بهینهسازی عملکرد پایگاه داده کمک کنند. به عنوان مثال، میتوانید جداول پرکاربرد را در Tablespace های جداگانه ذخیره کنید تا از رقابت برای منابع I/O جلوگیری کنید.
- ایجاد و حذف آسان اشیاء پایگاه داده: Tablespace ها به شما این امکان را میدهند که اشیاء پایگاه داده را به راحتی ایجاد و حذف کنید. نیازی به نگرانی در مورد مکان فیزیکی ذخیرهسازی اشیاء نیست.
- امنیت: Tablespace ها میتوانند به شما در ایمنسازی پایگاه داده خود کمک کنند. به عنوان مثال، میتوانید Tablespace های جداگانه برای دادههای حساس و دادههای غیر حساس ایجاد کنید و مجوزهای دسترسی متفاوتی را برای هر Tablespace تنظیم کنید.
انواع Tablespace:
- Tablespace پیشفرض: هر پایگاه داده MSSQL Server دارای یک Tablespace پیشفرض به نام PRIMARY است. این Tablespace برای ذخیرهسازی دادههایی استفاده میشود که به طور خاص به Tablespace دیگری اختصاص داده نشدهاند.
- Tablespace کاربری: Tablespace های کاربری توسط کاربر ایجاد میشوند و برای ذخیرهسازی دادههای خاص استفاده میشوند.
- Tablespace سیستمی: Tablespace های سیستمی توسط MSSQL Server برای ذخیرهسازی اشیاء داخلی پایگاه داده مانند کاتالوگ سیستم استفاده میشوند.
ایجاد Tablespace:
برای ایجاد Tablespace، میتوانید از دستور CREATE TABLESPACE استفاده کنید. به عنوان مثال، دستور زیر یک Tablespace جدید به نام my_tablespace در دایرکتوری C:\data\mssql\my_tablespace
ایجاد میکند:
CREATE TABLESPACE my_tablespace
WITH FILEGROUP = my_filegroup
ON (
FILE = N'C:\data\mssql\my_tablespace.ndf',
DATA = N'C:\data\mssql\my_tablespace.dat'
);
ذخیرهسازی دادهها در Tablespace:
هنگام ایجاد یک شیء پایگاه داده مانند جدول یا ایندکس، میتوانید Tablespace ای را که میخواهید در آن ذخیره شود، مشخص کنید. به عنوان مثال، دستور زیر یک جدول جدید به نام my_table در Tablespace my_tablespace ایجاد میکند:
CREATE TABLE my_table (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(۲۵۵) NOT NULL
) TABLESPACE my_tablespace;
حذف Tablespace:
برای حذف Tablespace، میتوانید از دستور DROP TABLESPACE استفاده کنید. به عنوان مثال، دستور زیر Tablespace my_tablespace را حذف میکند:
DROP TABLESPACE my_tablespace;
نکات مهم:
- قبل از حذف Tablespace، باید مطمئن شوید که هیچ شیء پایگاه دادهای در آن ذخیره نشده است.
- نمیتوانید Tablespace پیشفرض را حذف کنید.
- Tablespace های سیستمی به طور خودکار توسط MSSQL Server مدیریت میشوند و نیازی به حذف آنها نیست.
مثال:
فرض کنید میخواهید یک پایگاه داده برای یک فروشگاه آنلاین ایجاد کنید. این پایگاه داده شامل جداول مختلفی مانند محصولات، سفارشات و مشتریان خواهد بود.
میتوانید از Tablespace های مختلف برای ذخیرهسازی دادههای مختلف استفاده کنید. به عنوان مثال، میتوانید:
- جدول محصولات را در Tablespace products_tablespace ذخیره کنید تا از دسترسی سریع به اطلاعات محصول اطمینان حاصل کنید.
- جداول سفارشات و مشتریان را در Tablespace orders_customers_tablespace ذخیره کنید.