folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder MVC İle Big Datalı Sayfalama Yapmak



MVC İle Big Datalı Sayfalama Yapmak

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    Bu konuda her yerde karşımıza https://www.nuget.org/packages/PagedList.Mvc çıkıyor. Ama tüm veriyi select edip daha sonra eldeki verilerle sayfalama yapıyor. 500 - 1500 kayıtta hadi önemli değilde 100K kayıtta problem haliyle. 

    Bu işi düzgün yapan sistem var mıdır?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Hocam Entity framework için basit bi sayfalama kodum var ama big dataya nasıl uyarlanır bilmem.

    public static IQueryable<T> ToPagedQuery<T>(this IQueryable<T> query, int pageSize, int pageNumber )
            {
                int skipcnt = pageSize * (pageNumber - 1);
                if (skipcnt <= 0) skipcnt = 0;
                return query.Skip(skipcnt).Take(pageSize);
            }

     


    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Hocam, MVC bilmiyorum.

    Klasik bir sayfalama örneği yazabilir misin MVC için.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Bu yukarıdakini kullanınca

    var x=db.Person.Where(o=> o.yas>10)

    var ikincisayfa=x.ToPagedQuery(20,2)

    gibi alabiliyorum.

    Fonksiyonun içini bigdata için değiştirebilirsen çok faydasını görürsün


    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    holy hocam hem senin bu kodu kullanıp hemde geneksel bir prosedur yazarak bişeyler yapmak gerekli anladığım kadarıyla. 

    SELECT * FROM Product 
    ORDER BY Id ASC
    OFFSET 0 ROWS
    FETCH NEXT 10 ROWS ONLY

     

    sonucu yazarım buraya

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek

    datatables.net var belki isine yarar hocam


    lrny.app
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    Olayı şu şekilde bitirdim. 

    Önce spyi oluşturdum.

    create proc [dbo].[spCustomerList]
    @sayfadakiKayitSayisi nvarchar(50),
    @sayfaNumarasi nvarchar(50),
    @addsql nvarchar(500),
    as
    exec ('
    Declare @ilkkayit int
    Declare @sonkayit int
    set @ilkkayit = ('+@sayfaNumarasi +'- 1) * '+@sayfadakiKayitSayisi +'+ 1
    set @sonkayit = @ilkkayit + '+@sayfadakiKayitSayisi+' - 1
    ;WITH sayfalama AS
    (
    SELECT
    row_number() over (order by c.Id ) as SatirSayisi,
    c.*
    from
    Customer(nolock) c
    where 1=1 '+ @addsql +'
    )
    SELECT
    *
    FROM
    sayfalama
    WHERE
    SatirSayisi between @ilkkayit and @sonkayit
    ')
    

     

     

    Daha sonra Buradan gelen verilerle eşleştirmeli bir Model yazdım.

     

    Verileri modele attıktan sonra telerik kendo grid var(harika bişey) toplam datayı kaçıncı sayfada olduğunun bilgisini falan ajaxla gönderdim (grid ajax destekli) 

    ortaya gayet hızlı bişey çıktı güzelde oldu 

    Zaten yüzyıllardır var olan bir sistemdi yeni bir şey katmadım pek ama asp.net mvc bu konuda zayıf kalmış bence çok gereksiz yere bayyaa bi uğraştım.

     

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ccaglayan
    Ccaglayan's avatar
    Kayıt Tarihi: 23/Kasım/2011
    Erkek

    verilerin büyüklüğü nedir acaba ? çok büyük veriler ise geleneksel veritabanı kullanmamanı öneririm indexleme yapan solr, sphinx veya elastic search tarzı şeylere bakmanı öneririm belirli verileri bunun içine atarsan çok hızlı sayfalama yapabilirsin misal şua 30gb dan büyük bir veritabanı içinde bu tarz arama sorgularından saniseler içinde çıktı alabiliyoruz ve veriler çok sık değişmişyorsa cache alyapısınıda kullanabilirsin. 

Toplam Hit: 801 Toplam Mesaj: 8
asp.net mvc pagedlist