SQL Server ile Verinin Sayfalanması ( SQL Server Paging)

Şubat 8, 2017
48 Views

Merhabalar,

Bugün sizlere verinin sayfalanması (paging ) işlemini SQL Server ile nasıl yapabileceğimizi göstereceğim. Bu konu ile ilgili olarak SQL Server 2012 ile yaşantımıza girmiş OFFSET and FETCH özelliğinden bahsediyor olacağım.

  • SQL Server 2012 ile OFFSET and FETCH Özelliğinin kullanımı

    İlk n kaydı hariç tutmak için genel sözdizimi aşağıdaki gibidir.

    SELECT sutun-adlari

    FROM tabloadi

    ORDER BY sutun-adlari

    OFSET n ROWS

    İlk n kaydı hariç tutmak ve yalnızca sonraki m kayıtlarını getirmek için

    SELECT sutun-adlari

    FROM tabloadi

    ORDER BY sutun-adlari

    OFSET n ROWS

    FETCH NEXT m ROWS ONLY

Yukarıdaki sorgunun çıktısı ise (n + 1) ila (n + 1 + m) arasında olan değerleri olacaktır.

Aşağıdaki sorgu sonucunda ilk select içerisinde products tablosundaki kayıt sayısını ekrana getiriyorum. İkinci select sorgusunda ise offset 70 diyerek productID 70 den büyük olanları bana göstermesini sağlıyorum. Eğer ki tabloda 77 değil daha fazla sayıda ürün olsa idi ikinci sorgu sonucunda 7 ürün değil daha çok bilgi dönecekti.

Şimdi ise Offset – Fetch özelliğini kullanarak sayfalama işlemini nasıl yapabiliriz ona bakalım. Aşağıdaki sorgu ihtiyacımızı görecektir.

Yukarıdaki çıktıyı incelediğinizde declare ile iki tane değişken tanımlaması yaptığımı ve @PageNumber için 0 @pagesize için 10 değerlerini verdiğimi görüyorsunuz. Result tarafında ise verdiğim değerlere göre gelen ilk sayfa verileri görüyorsunuz. Eğer ki ben PageNumber değerini 0, PageSize değerini ise 20 yapsaydım result tarafında 0 ile 20 arasındaki ürünler gelecektir.

Pagesize değeri ekranda kaç adet veriyi göstereceğiniz bilgisi, pagenumber ise kaçıncı sayfanın verisi olduğunu sizlere gösteriyor olacaktır. Yani PageNumber’I = 2, PageSize’de 20 yaparsanız ProductID değeri 40 dan büyük olan 20 ürünü görüntülemiş olursunuz.

Buradaki PageNumber ve PageSize değerlerini Stored Procedure parametreleri olarak düşünecek olursanız artık uygulamalarınızda paging yapma tarafını sql server tarafında daha da hızlıca yapabiliyor olursunuz eğer ki sql server 2012 öncesi bir sürüm kullanıyorsanız işlem kümenizi sıralayıp operatorler ile ihtiyacınıza uygun sayfalama verilerini oluşturabilirsiniz.

You may be interested

Fortigate 5.4.0 BlackHole Routing nedir?
Ağ Teknolojileri
0 shares444 views
Ağ Teknolojileri
0 shares444 views

Fortigate 5.4.0 BlackHole Routing nedir?

Caner AKTAŞ - May 29, 2017

Herkese Merhaba,  Bugün kü konumuz Black Hole ( Kara Delik) routing nedir, nerelerde kullanırız ve nasıl kullanırız gibi başlıklar altında…

İŞ İLANI – Bilgi Güvenliği – Destek Uzmanı (ESET Türkiye)
Güvenlik Teknolojileri
0 shares255 views
Güvenlik Teknolojileri
0 shares255 views

İŞ İLANI – Bilgi Güvenliği – Destek Uzmanı (ESET Türkiye)

Mücahid AKÇAY - May 24, 2017

ESET Türkiye İstanbul ofisinde, teknik destek ekibinde çalışacak aşağıdaki özelliklere sahip ekip arkadaşları arayışımız bulunmaktadır. İlgilenenlerin ik@stratus.com.tr adresine Bilgi Güvenliği -…

Fortigate 5.4.0 ile WannaCry nasıl önlenir?
Güvenlik Teknolojileri
0 shares646 views
Güvenlik Teknolojileri
0 shares646 views

Fortigate 5.4.0 ile WannaCry nasıl önlenir?

Caner AKTAŞ - May 23, 2017

Herkese Merhaba, Gündemimize bomba gibi oturan televizyonlar da sosyal medyalarda her yerde görmeye başladığımız WannaCry virüsü ile ilgili birkaç not…

Leave a Comment

Your email address will not be published.