"

صفحه ( Page ) در SQL

تیم تحریریه 1403/12/14 0 125
لینک کوتاه https://zoheirsoftware.com/z/9704313da |
صفحه ( Page ) در SQL,روش‌های پیاده‌سازی صفحه‌بندی در SQL,مزایای صفحه ( Page ) در SQL

صفحه ( Page ) در SQL

در پایگاه داده SQL، صفحه (Page) کوچک‌ترین واحد ذخیره‌سازی داده است.

هر صفحه معمولاً ۸ کیلوبایت اندازه دارد و شامل داده‌های جدول، ایندکس‌ها یا اطلاعات مربوط به تخصیص حافظه است.

هنگامی که یک جدول داده‌ها را ذخیره می‌کند، رکوردهای آن در صفحات توزیع می‌شوند و SQL Server داده‌ها را به‌صورت صفحه‌ای مدیریت می‌کند تا عملیات خواندن و نوشتن بهینه شود.

هر صفحه دارای ساختار مشخصی شامل سربرگ (Header)، فضای ذخیره داده و فضای مدیریت رکوردها است.

سربرگ صفحه اطلاعاتی مانند شماره صفحه، نوع داده‌های ذخیره‌شده و وضعیت پر شدن صفحه را نگه می‌دارد.

نوع صفحات می‌تواند داده‌ای (Data Page)، ایندکس (Index Page)، صفحه تخصیص (IAM Page) و موارد دیگر باشد که هر کدام نقش خاصی در مدیریت پایگاه داده ایفا می‌کنند.

 

صفحه ( Page ) در SQL

روش‌های پیاده‌سازی صفحه‌بندی در SQL

دو روش متداول برای پیاده‌سازی صفحه‌بندی در SQL استفاده از LIMIT و OFFSET و روش استفاده از ROW_NUMBER() است.

  •  استفاده از LIMIT و OFFSET

این روش در پایگاه داده‌هایی مانند MySQL و PostgreSQL استفاده می‌شود.

SELECT * FROM productsORDER BY id ASCLIMIT 10 OFFSET 20;

LIMIT 10: تعداد رکوردهای نمایش داده شده را مشخص می‌کند.
OFFSET 20: تعیین می‌کند که نمایش از رکورد بیستم شروع شود.

مشکلات روش LIMIT و OFFSET

    • کاهش کارایی در حجم داده‌های بالا: اگر مقدار OFFSET بزرگ باشد، پایگاه داده باید از رکوردهای قبلی عبور کند و این باعث کاهش عملکرد می‌شود.
    • عدم پایداری در نمایش داده‌ها: اگر در طول زمان داده‌ها تغییر کنند، کاربران ممکن است نتایج نامنظمی ببینند.

 

  • استفاده از () ROW_NUMBER

در پایگاه داده‌هایی مانند SQL Server و Oracle، می‌توان از تابع () ROW_NUMBER برای صفحه‌بندی استفاده کرد:

WITH PaginatedResults AS (    SELECT *, ROW_NUMBER() OVER (ORDER BY id ASC) AS row_num    FROM products)SELECT * FROM PaginatedResultsWHERE row_num BETWEEN 21 AND 30;

() ROW_NUMBER شماره هر سطر را تعیین می‌کند.
BETWEEN 21 AND 30 مشخص می‌کند که رکوردهای بین این اعداد نمایش داده شوند.

 

 

روش‌های پیاده‌سازی صفحه‌بندی در SQL

مزایای صفحه ( Page ) در SQL

بهینه‌سازی صفحه‌بندی

برای افزایش کارایی صفحه‌بندی، می‌توان از روش‌های زیر استفاده کرد:

  • استفاده از فیلترهای WHERE برای محدود کردن تعداد رکوردهای پردازش‌شده.

  • استفاده از شاخص‌ها (Indexes) برای افزایش سرعت جستجو و مرتب‌سازی.

  • استفاده از تکنیک‌های کش (Caching) برای کاهش درخواست‌های مکرر به پایگاه داده.

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

مثال پروژه محور صفحه ( Page ) در SQL

سناریو: سیستم مدیریت مقالات

فرض کنید در حال طراحی یک سیستم مدیریت مقالات هستیم که کاربران می‌توانند مقالات خود را در آن منتشر کنند.

با افزایش تعداد مقالات، نمایش تمام داده‌ها در یک درخواست باعث افت کارایی می‌شود.

بنابراین، باید از صفحه‌بندی (Pagination) برای نمایش مقالات استفاده کنیم.

  • ایجاد جدول مقالات

ابتدا یک جدول برای ذخیره مقالات ایجاد می‌کنیم:

CREATE TABLE Articles (

    id INT PRIMARY KEY IDENTITY(1,1),

    title NVARCHAR(255) NOT NULL,

    content TEXT NOT NULL,

    created_at DATETIME DEFAULT GETDATE()

);

 

  • درج داده نمونه

برای تست صفحه‌بندی، تعدادی مقاله نمونه وارد می‌کنیم:

INSERT INTO Articles (title, content)

VALUES

('مقاله اول', 'محتوای مقاله اول'),

('مقاله دوم', 'محتوای مقاله دوم'),

('مقاله سوم', 'محتوای مقاله سوم'),

('مقاله چهارم', 'محتوای مقاله چهارم'),

('مقاله پنجم', 'محتوای مقاله پنجم');

 

  • پیاده‌سازی صفحه‌بندی (Pagination)

برای دریافت مقالات به صورت صفحه‌بندی‌شده، از OFFSET و FETCH در SQL Server استفاده می‌کنیم:

نمایش صفحه اول (۵ مقاله در هر صفحه)

DECLARE @PageNumber INT = 1;

DECLARE @PageSize INT = 2;





SELECT id, title, content, created_at

FROM Articles

ORDER BY created_at DESC

OFFSET (@PageNumber - 1) * @PageSize ROWS

FETCH NEXT @PageSize ROWS ONLY;
  •  مقدار @PageNumber شماره صفحه و @PageSize تعداد مقالات در هر صفحه است.

  • OFFSET مشخص می‌کند چند سطر باید رد شود.

  •  FETCH NEXT تعداد سطرهایی که باید نمایش داده شود را تعیین می‌کند.

 

  • تست صفحه دوم

برای دریافت صفحه دوم کافیست مقدار @PageNumber را تغییر دهیم:

 

DECLARE @PageNumber INT = 2; -- صفحه دوم

DECLARE @PageSize INT = 2;





SELECT id, title, content, created_at

FROM Articles

ORDER BY created_at DESC

OFFSET (@PageNumber - 1) * @PageSize ROWS

FETCH NEXT @PageSize ROWS ONLY;

 


نتیجه

  •  این روش باعث می‌شود که بدون بارگذاری همه مقالات، فقط مقالات مورد نیاز در صفحه نمایش داده شوند، که کارایی را بهبود می‌بخشد.
  • در برنامه‌های واقعی، می‌توان این کوئری را در یک API یا نرم‌افزار سمت کلاینت برای مدیریت صفحه‌بندی پیاده‌سازی کرد.

 

 

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

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

997,000 تومان

3k بازدید

ارسال دیدگاه

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