"

معماری و ساختار Page در SQL Server,ساختار Page در SQL Server,معماری Page در SQL Server

معماری و ساختار Page در SQL Server

معماری Page در SQL Server نحوه ذخیره داده‌ها در صفحات ۸ کیلوبایتی را توضیح می‌دهد و پایه مدیریت اطلاعات و ایندکس‌ها است.

تیم تحریریه
8
0
18 مرداد 1405
لینک کوتاه

معماری و ساختار Page در SQL Server

معماری Page در SQL Server یکی از مهم‌ترین بخش‌های موتور ذخیره‌سازی این سیستم مدیریت پایگاه داده است.
SQL Server تمامی اطلاعات مربوط به جداول، ایندکس‌ها و سایر اشیای پایگاه داده را در واحدهایی به نام Page ذخیره می‌کند.
هر Page دارای اندازه ثابت ۸ کیلوبایت (8KB) است و کوچک‌ترین واحدی محسوب می‌شود که SQL Server برای خواندن و نوشتن داده‌ها از آن استفاده می‌کند.
این ساختار باعث می‌شود مدیریت حافظه، بازیابی اطلاعات و پردازش داده‌ها با سرعت و کارایی بیشتری انجام شود.
هر Page از بخش‌هایی مانند Page Header، ناحیه ذخیره داده‌ها (Data Area) و Row Offset Array تشکیل شده است که هر کدام وظیفه مشخصی در نگهداری و مدیریت اطلاعات دارند.
آشنایی با ساختار Page به توسعه‌دهندگان و مدیران پایگاه داده کمک می‌کند تا مفاهیمی مانند Page Split، Fragmentation، نحوه عملکرد ایندکس‌ها و بهینه‌سازی کوئری‌ها را بهتر درک کنند و عملکرد پایگاه داده را بهبود ببخشند.



معماری و ساختار Page در SQL Server

Page در SQL Server چیست؟

Page کوچک‌ترین واحد ذخیره‌سازی (Storage Unit) در SQL Server است.
تمام داده‌های جداول، ایندکس‌ها و سایر اشیای پایگاه داده در Pageها ذخیره می‌شوند و SQL Server عملیات خواندن و نوشتن اطلاعات را در سطح Page انجام می‌دهد، نه در سطح رکورد.
هر Page دارای اندازه 8 کیلوبایت (8192 بایت) است و این اندازه در تمام نسخه‌های SQL Server ثابت است.

چرا SQL Server از Page استفاده می‌کند؟

ذخیره اطلاعات در Page باعث می‌شود:
  • مدیریت حافظه ساده‌تر شود.

  • عملیات خواندن و نوشتن سریع‌تر انجام شود.

  • داده‌ها به‌صورت منظم روی دیسک ذخیره شوند.

  • امکان مدیریت ایندکس‌ها و Cache فراهم شود.

  • عملکرد Queryها بهبود پیدا کند.


ساختار  Page 
در SQL Server

هر Page از سه بخش اصلی تشکیل شده است:

1. Page Header

در ابتدای هر Page حدود 96 بایت برای اطلاعات مدیریتی رزرو می‌شود.
این بخش شامل اطلاعاتی مانند:
  • شماره Page

  • نوع Page

  • تعداد رکوردها

  • فضای خالی

  • شناسه فایل

  • اطلاعات تخصیص

است.

2. Data Area


بخش اصلی Page است که داده‌های جدول یا ایندکس در آن ذخیره می‌شوند.

نمونه:
ID Name
1 Ali
2 Sara
3  Reza


تمام این رکوردها داخل قسمت Data قرار می‌گیرند.

3. Row Offset Array

در انتهای Page آرایه‌ای وجود دارد که محل قرارگیری هر رکورد را مشخص می‌کند.
به جای جستجوی کل Page، SQL Server با استفاده از این آرایه مستقیماً رکورد موردنظر را پیدا می‌کند.


اندازه Page در SQL Server


هر Page برابر است با:

8192 Bytes

تقسیم‌بندی آن:

بخش    اندازه تقریبی
Page Header   96 Bytes
داده‌ها   حدود 8060 Bytes
Row Offset Array  متغیر



🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟
با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!
این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.
با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.
پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!



ارتباط Page و Extent

Pageها به‌صورت گروه‌های هشت‌تایی مدیریت می‌شوند.

هر:

8 Page

برابر است با:

1 Extent

اندازه هر Extent:

64 KB

به همین دلیل SQL Server معمولاً حافظه را در قالب Extent مدیریت می‌کند.


انواع Page در SQL Server

SQL Server تنها از یک نوع Page استفاده نمی‌کند.
مهم‌ترین انواع آن عبارت‌اند از:

نوع Page   کاربرد
Data Page ذخیره اطلاعات جدول
Index Page ذخیره ساختار ایندکس
IAM Page مدیریت Extentها
PFS Page ثبت فضای خالی
GAM Page   مدیریت تخصیص Extent
SGAM Page مدیریت Shared Extent
Boot Page اطلاعات پایگاه داده


انواع Page در SQL Server

Data Page چیست؟

رایج‌ترین نوع Page است.
تمام رکوردهای جدول در این Page ذخیره می‌شوند.
مثلاً جدول زیر:

Customers

ID     Name
1 Ali
2 Sara
3 Reza

   
در Data Page قرار می‌گیرد.

Index Page چیست؟

اگر روی جدول ایندکس ایجاد کنید، SQL Server اطلاعات ایندکس را داخل Index Page ذخیره می‌کند.
مثلاً:
CREATE INDEX IX_Customers_Name
ON Customers(Name);


اکنون SQL Server ساختار B-Tree مربوط به ایندکس را داخل مجموعه‌ای از Index Pageها نگهداری می‌کند.

مثال کاربردی: ثبت اطلاعات مشتریان

فرض کنید جدول زیر را ایجاد کرده‌ایم:

CREATE TABLE Customers
(
    Id INT PRIMARY KEY,
    FullName NVARCHAR(100),
    City NVARCHAR(50)
);


سپس:
INSERT INTO Customers
VALUES
(1,'علی','تهران'),
(2,'سارا','اصفهان'),
(3,'رضا','تبریز');

SQL Server این رکوردها را به‌ترتیب داخل یک یا چند Data Page ذخیره می‌کند.
اگر تعداد رکوردها کم باشد، همه آن‌ها ممکن است در یک Page قرار بگیرند؛ با افزایش داده‌ها، Pageهای جدید به‌صورت خودکار ایجاد می‌شوند.

مثال کاربردی: رشد جدول

فرض کنید روزانه هزاران سفارش در جدول Orders ثبت می‌شود.

در ابتدا:

Page 1

پر می‌شود.

سپس:

Page 2

ایجاد می‌شود.

بعد:

Page 3

و به همین ترتیب.

کاربر نیازی به مدیریت این فرآیند ندارد؛ SQL Server به‌صورت خودکار تخصیص Pageها را انجام می‌دهد.

Page Split چیست؟

اگر یک Page کاملاً پر باشد و رکورد جدیدی وارد شود، SQL Server ممکن است اطلاعات را بین دو Page تقسیم کند.
به این عملیات:
Page Split
گفته می‌شود.
نتیجه:
  • ایجاد Page جدید
  • انتقال بخشی از رکوردها
  • کاهش سرعت درج اطلاعات
  • افزایش Fragmentation
به همین دلیل انتخاب مناسب Clustered Index و Fill Factor اهمیت زیادی دارد.

Fragmentation و ارتباط آن با Page در SQL Server

با گذشت زمان، Pageها به ترتیب اولیه روی دیسک قرار نمی‌گیرند.
این موضوع باعث ایجاد Fragmentation می‌شود.

پیامدها

  • افزایش عملیات I/O
  • کاهش سرعت Query
  • افزایش زمان Scan

راهکارها

  • Rebuild Index
  • Reorganize Index
  • انتخاب Fill Factor مناسب

مشاهده اطلاعات Page در SQL Server

SQL Server امکان بررسی ساختار داخلی Page را نیز فراهم کرده است.
نمونه دستور:
DBCC IND('DatabaseName','Customers',1);

و برای مشاهده جزئیات یک Page:

DBCC PAGE('DatabaseName',1,150,3);

این دستورات بیشتر برای مدیران پایگاه داده (DBA) و تحلیل عملکرد سیستم استفاده می‌شوند.

بهترین زمان برای معماری Page در SQL Server

درک ساختار Page زمانی اهمیت بیشتری پیدا می‌کند که:
  • با حجم زیادی از داده‌ها کار می‌کنید.

  • قصد بهینه‌سازی Queryها را دارید.

  • عملکرد ایندکس‌ها را بررسی می‌کنید.

  • Fragmentation را مدیریت می‌کنید.

  • به‌عنوان DBA فعالیت می‌کنید.



مزایای شناخت ساختار Page در SQL Server

  • درک بهتر نحوه ذخیره اطلاعات

  • بهینه‌سازی عملکرد Queryها

  • مدیریت بهتر ایندکس‌ها

  • کاهش Fragmentation

  • افزایش سرعت بازیابی داده‌ها

  • تحلیل دقیق‌تر مشکلات کارایی



مزایای شناخت ساختار Page در SQL Server

نکات مهم 
معماری Page در SQL Server

  • اندازه هر Page در SQL Server همیشه 8KB است.
  • هر Extent از 8 Page تشکیل می‌شود.
  • Page کوچک‌ترین واحد ذخیره‌سازی داده است.
  • SQL Server داده‌ها را در سطح Page می‌خواند و می‌نویسد.
  • پر شدن Pageها و ایجاد Page Split می‌تواند روی کارایی تأثیر منفی بگذارد.

جمع‌بندی

معماری و ساختار Page در SQL Server یکی از مهم‌ترین مفاهیم داخلی این سیستم مدیریت پایگاه داده است.
تمام اطلاعات جداول، ایندکس‌ها و سایر اشیای پایگاه داده در Pageهای ۸ کیلوبایتی ذخیره می‌شوند و SQL Server عملیات خواندن، نوشتن و مدیریت داده‌ها را بر اساس این ساختار انجام می‌دهد.
آشنایی با Page، Extent، انواع Pageها و مفاهیمی مانند Page Split و Fragmentation به شما کمک می‌کند عملکرد پایگاه داده را بهتر تحلیل و بهینه‌سازی کنید.

محصولات مرتبط

کاربران ما

شما هم نظرتون با ما دریاره “معماری و ساختار Page در SQL Server” اشتراک بزارید

برای ارسال نظر لطفا ورود یا ثبت نام کنید

منو