روشهای صفحه بندی یا Pagination در SQL Server

1402/08/30 · عباس کردیان
عملیات صفحه بندی (paging) در Sql Server

در خیلی مواقع ملاحظه میشود که برای نمایش تعدادی از رکوردهای یک جدول در پایگاه داده، کل مقادیر موجود درآن توسط یک دستور select به دست می‌آید و صفحه‌بندی خروجی، به کنترلهای موجود سپرده میشود. اگر پایگاه داده ما دارای تعداد زیادی رکورد باشد، آن موقع است که دچار مشکل می‌شویم. فرض کنید به طور همزمان ۵ نفر (که تعداد زیادی نیستند) از برنامه ما که شامل ۱۰۰۰۰۰ سطر داده میباشد استفاده کنند و در هر صفحه، ۱۰ رکورد نمایش داده شود و صفحه‌بندی ما از نوع معقولی نباشد. در این صورت به جای اینکه با ۵×۱۰ رکورد داده را بارگزاری کنیم، ۵×۱۰۰۰۰۰ رکورد یعنی ۵۰۰۰۰۰ رکورد را برای به دست آوردن ۵۰ رکورد بارگزاری میکنیم. در زیر روشی شرح داده میشود که توسط آن، این سربار اضافه از روی برنامه و سرورهای مربوطه حذف شود. به stored procedure و توضیحات مربوط به آن توجه فرمایید :

با مثال زیر شما به راحتی می توانید اس پی طراحی کنید که به صورت صفحه بندی اطلاعات را به شما نمایش دهد

 

declare @start int =    0;
SELECT   [NewsId]
      ,[NewsMakeDate]
      ,[NewsUpdateDate]
      ,[NewsActiveDate]
      ,[NewsUserSave]
      ,[NewsTitleShort]
      ,[NewsTitle]
      ,[NewsDescription]
      ,[NewsWriteName]
      ,[NewsSendSite]
      ,[NewsType]
      ,[NewsUserSaveOK]
      ,[NewsActive]
      ,[NewsOk]
      ,[NewsLink]
  FROM [dbo].[Tbl_News]

  order by newsid asc

	OFFSET @start ROWS
    FETCH NEXT 10 ROWS ONLY;

نظرات (0)