Sql Server Sayfalama (pagination)

Merhabalar,

Sql server üzerinde 1 milyonluk datalı tablodan performanslı sayfalama (paging) sorgusu örneğini aşağıda bulabilirsiniz. Where kriterine ekstra kolonlar eklenecek ise index tanımlamayı unutmamak gerekir.

;WITH Siparisler AS
( 
   SELECT *, ROW_NUMBER() OVER(ORDER BY tSiparisID ASC) rownum FROM tSiparisler
)
SELECT * FROM Siparisler WHERE rownum BETWEEN 1 AND 20;


Sql Server 2012 ve üzeri db versiyonu kullanıyor isek alternatif olarak aşağıdaki sorguda tercih edilebilir.

SELECT * FROM tSiparisler ORDER BY tSiparisID ASCOFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY;