Sayfalandırma Nedir?

Sayfalandırma, büyük verileri ayrı sayfalarda daha küçük veri kümelerine bölme işlemidir. Web uygulamalarında yaygın olarak kullanılmaktadır.

MS SQL Server’da Sayfalandırma Nasıl Çalışır?

İçinde MS SQL Serverkullanarak sayfalama işlevini elde edebiliriz. OFFSET ve FETCH ORDER BY ile cümleler SELECT ceza.

  • OFFSET: Sonuç kümesinden atlanacak satır sayısını temsil eder. 0 veya 0’dan büyük olmalıdır.
  • FETCH:Sonuçta görüntülenecek satır sayısını temsil eder.

Kullanırken Dikkat Edilmesi Gereken Önemli Noktalar OFFSET ve FETCH:

  • ORDER BY kullanım için zorunludur OFFSET FETCH Madde.
  • OFFSET zorunludur ve FETCH İsteğe bağlı.
  • TOP cümlesi kullanılamaz SELECT ile tatment OFFSET FETCH.

Örnekleri görelim:

Aşağıdaki örnekte, OFFSET 0 ve FETCH NEXT 5 ROWS satır yok ve veri kümesindeki ilk 5 satır olan veri kümesindeki sonraki 5 satırı döndürün.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 0 ve SONRAKİ 5 SIRAYI FETCH

Aşağıdaki örnekte, OFFSET 3 ve FETCH NEXT 5 ROWS yani ilk 3 satırı atla ve veri kümesindeki sonraki 5 satırı döndür.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 3 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 3 ve FETCH SONRAKİ 5 SATIRPageNumberRowsOfPage

  • PageNumber — Sayfa numarasını temsil eder
  • RowsOfPage — Bir sayfadaki satır sayısını temsil eder

Şimdi bir sonraki sayfa formülüne geçtiğimizde atlanacak satır sayısını hesaplamak için(@PageNumber-1) * @RowsOfPage kullanılıyor OFFSETve satır sayısı döndürülecek FETCH.

Burada, PageNumber 2 ve RowsOfPage 5’tir, bu, sayfa numarası 2 için veri kümesini döndürmek anlamına gelir.

DECLARE @PageNumber AS INT
       ,@RowsOfPage AS INT

SET @PageNumber=2
SET @RowsOfPage=5

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey
OFFSET (@PageNumber-1) * @RowsOfPage ROWS
FETCH NEXT @RowsOfPage ROWS ONLY

OFFSET (@PageNumber-1) * @ RowsofPage ve FETCH NEXT @RowsOfPage ROWS

Çözüm

Gerçek zamanlı uygulamada, bu tam mantık, sayfadaki kayıt kümesini görüntülemek için web uygulamasında “İleri” veya sayfa numarası düğmesine tıklanarak çağrılan saklı prosedürde yazılabilir.

MS SQL Server’da OFFSET ve FETCH Kullanarak Sayfalandırma Nasıl Yapılır? [Simple] bahsettiğim yöntemler işe yaradı. Okuduğunuz için teşekkür ederiz ve lütfen bu makale hakkındaki düşüncelerinizi aşağıya yorumlayın ve paylaşın signalfix.net arkadaşlarınla.