دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Class Library در سی شارپ
1404/01/10 -
دستور BREAK در پایگاه داده sql
1404/01/02 -
دستور CONTINUE در پایگاه داده SQL
1404/01/01 -
دستور WAITFOR در پایگاه داده SQL
1403/12/26 -
دستور GOTO در پایگاه داده SQL
1403/12/25 -
حلقه WHILE در پایگاه داده SQL
1403/12/24
Extent در پایگاه داده SQL

مفهوم Extent در پایگاه داده SQL
Extent در پایگاه داده SQL به مجموعهای از ۸ صفحه (Page) متوالی در حافظه گفته میشود که برای تخصیص فضای ذخیرهسازی بهینه استفاده میشود.
از آنجایی که هر صفحه ۸ کیلوبایت است، یک Extent معمولاً ۶۴ کیلوبایت فضا را اشغال میکند.
هدف از Extent این است که تخصیص دادهها بهینهتر شده و از تکهتکه شدن فضای ذخیرهسازی جلوگیری شود.
Extentها به دو نوع Uniform Extent و Mixed Extent تقسیم میشوند.
نقش Extent در عملکرد پایگاه داده
مفهوم Extent در پایگاه داده SQL به دو دلیل اصلی اهمیت دارد:
-
بهبود عملکرد ذخیرهسازی
استفاده از Extent باعث میشود که دادهها به صورت بهینهتر در دیسک ذخیره شوند.
این کار میتواند منجر به کاهش تعداد عملیات ورودی و خروجی (I/O) شود و به این ترتیب عملکرد پایگاه داده بهبود مییابد. -
مدیریت بهتر فضای ذخیرهسازی
با تخصیص دادهها به صورت صفحات و Extentها، پایگاه داده میتواند به طور مؤثرتری فضای ذخیرهسازی را مدیریت کند و از فضای دیسک بهینه استفاده کند.
انواع Extentها در SQL
در SQL، دو نوع Extent اصلی وجود دارد:
-
Uniform Extent
در این نوع، تمام صفحات Extent از همان نوع دادهها استفاده میکنند.
این نوع Extent معمولاً زمانی به کار میرود که یک جدول جدید ایجاد میشود و دادهها به طور مرتب در صفحات ذخیره میشوند. -
Mixed Extent
در این نوع، صفحات Extent میتوانند از انواع مختلف دادهها استفاده کنند.
این نوع Extent زمانی به کار میرود که دادهها به صورت پویا و غیرمنظم ذخیره میشوند و از این رو چندین جدول یا شاخص میتوانند در یک Extent مشترک قرار بگیرند.
تخصیص Extent در SQL Server
در SQL Server، مدیریت Extentها به این صورت انجام میشود:
-
هر جدول یا شاخص در SQL Server به صورت بلوکهایی از Extentها ذخیره میشود.
-
SQL Server از مکانیزم تخصیص صفحه استفاده میکند تا هر بار که نیاز به ذخیره دادههای جدید باشد، صفحههای جدید را به Extent تخصیص دهد.
-
زمانی که دادهها از یک صفحه به صفحه دیگری منتقل میشوند، SQL Server میتواند به طور خودکار Extentهای جدید را برای تخصیص دادهها ایجاد کند.
🌟 آیا میخواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما میتوانید به راحتی و با روشی عملی، تمام مهارتهای لازم را یاد بگیرید!
این دوره به شما آموزش میدهد که چگونه دادهها را به بهترین شکل مدیریت کنید، گزارشهای قدرتمند بسازید و به تحلیلهای عمیق دست یابید.
با محتوای جذاب و پروژههای واقعی، شما نه تنها تئوری را یاد میگیرید، بلکه تواناییهای عملی خود را نیز تقویت میکنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشنتر بردارید!
همین حالا شروع کنید و به دنیای دادهها بپیوندید!
مثال عملی از Extent در SQL
برای درک بهتر نحوه عملکرد Extent در SQL، یک مثال ساده را بررسی میکنیم.
فرض کنید یک جدول با نام employees داریم که اطلاعات کارکنان را ذخیره میکند. زمانی که دادهها به این جدول افزوده میشوند، SQL Server به صورت خودکار صفحات و Extentها را تخصیص میدهد.
ایجاد جدول در SQL
sqlCopyEditCREATE TABLE employees ( employee_id INT PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50), department VARCHAR(50), hire_date DATE);
افزودن دادهها به جدول
sqlCopyEditINSERT INTO employees (employee_id, first_name, last_name, department, hire_date)VALUES (1, 'John', 'Doe', 'IT', '2025-01-01'), (2, 'Jane', 'Smith', 'HR', '2024-05-15'), (3, 'Mike', 'Johnson', 'Finance', '2023-09-22');
زمانی که دادهها به جدول اضافه میشوند، SQL Server شروع به تخصیص صفحات و Extentها برای ذخیره دادهها میکند. این فرآیند به صورت خودکار انجام میشود و کاربر نیازی به دخالت در این روند ندارد.
مدیریت و بهینهسازی Extent در SQL
برای بهبود عملکرد و مدیریت بهتر فضای ذخیرهسازی، میتوان از روشهایی برای بهینهسازی تخصیص Extentها استفاده کرد:
-
استفاده از گروههای فایل
در SQL Server، میتوان گروههای فایل (Filegroups) را برای سازماندهی بهتر Extentها استفاده کرد. -
بازیابی فضا
گاهی اوقات ممکن است پس از حذف دادهها، صفحات و Extentها آزاد نشوند.
برای بازیابی فضای آزاد، میتوان از دستورات مانند DBCC SHRINKDATABASE استفاده کرد. -
شاخصهای بهینه
ایجاد شاخصهای بهینه میتواند به کاهش نیاز به صفحات اضافی و بهبود تخصیص Extentها کمک کند.
مثال پروژه محور از Extent در SQL
فرض کنید یک پایگاه داده برای مدیریت فروشگاه آنلاین داریم که شامل جدول Orders برای ذخیره سفارشها است.
زمانی که دادههای جدید وارد این جدول میشوند، SQL Server به صورت خودکار فضای ذخیرهسازی را از طریق Extentها مدیریت میکند.
-
ایجاد جدول سفارشات (Orders)
CREATE TABLE Orders (
OrderID INT PRIMARY KEY IDENTITY(1,1),
CustomerName NVARCHAR(100),
OrderDate DATETIME,
TotalAmount DECIMAL(10,2)
);
در ابتدا، SQL Server فقط چند صفحه (Page) از یک Mixed Extent را به این جدول اختصاص میدهد، زیرا حجم داده کم است.
-
درج داده در جدول
INSERT INTO Orders (CustomerName, OrderDate, TotalAmount)
VALUES
('Ali Rezaei', '2024-02-28', 250000),
('Sara Ahmadi', '2024-02-27', 480000),
('Mehdi Hosseini', '2024-02-26', 120000);
در این مرحله، دادهها هنوز از Mixed Extent استفاده میکنند، زیرا تعداد رکوردها کم است.
-
افزایش حجم داده و اختصاص Uniform Extent
INSERT INTO Orders (CustomerName, OrderDate, TotalAmount)
SELECT TOP 1000
'Test Customer ' + CAST(ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS NVARCHAR),
GETDATE(),
RAND() * 500000
FROM sys.all_objects;
با درج تعداد زیادی رکورد، SQL Server متوجه میشود که این جدول به فضای بیشتری نیاز دارد و به جای استفاده از Mixed Extent، یک Uniform Extent اختصاص میدهد.
-
بررسی صفحات و Extentهای اختصاصیافته
DBCC IND('YourDatabaseName', 'Orders', -1);
DBCC PAGE('YourDatabaseName', 1, PageNumber, 3);
با استفاده از این دستورات، میتوانیم صفحات اختصاصیافته به این جدول را بررسی کرده و مشاهده کنیم که چگونه SQL Server از Extentها برای مدیریت فضای ذخیرهسازی استفاده کرده است.
در ابتدا، دادهها در Mixed Extent ذخیره میشوند تا از فضای ذخیرهسازی بهینه استفاده شود. اما با افزایش حجم داده، SQL Server به صورت خودکار Uniform Extent اختصاص میدهد تا عملکرد پایگاه داده بهبود یابد.
دوره های مرتبط

آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .