none
Entity framework ile ilgili hız sorunu RRS feed

  • Soru

  • Merhaba. Entity framework ile  veritabanından verileri çekiyorum. (postgrsql) Veri çok fazla (15 bin) tüm tabloyu çekdiyimde aynı, şart belirtdiyimde aynımı? Yani önce tüm verileri çekiyor sonra belirtdiyim şarta göre filtirliyor böylemi? Daha mantıklı nasıl verileri çeke bilirim ki, hız çok düşmüsin? Yoksa bu kadar veriye göre normal? (6-8 saniye)

      var list = (from k in ctx.tablo.select new
                {
                    k.id,
                    k.barcode,
                    k.productname,
                    k.miqdar,
                    k.vahid,
                    k.fiyat,
                    k.category.categoryname
                }).AsEnumerable().Select((p, index) => new
                    {
                        no = index + 1,
                        p.id,
                        p.barcode,
                        p.productname,
                        p.miqdar,
                        p.vahid,
                        p.fiyat,                           
                        p.categoryname,
                       
                });



    25 Şubat 2020 Salı 12:17

Yanıtlar

  • IQueryable için LINQ sorguları hedef provider'a göre dönüştürülür. Yani tümünü çekmez. Fakat, örnekde bir filtreleme işi yok. Şüphe duyduğunuz sorguyu paylaşabilir misiniz?

    www.cihanyakar.com

    25 Şubat 2020 Salı 12:43
  • Cihan'in dediği gibi, senin yaptiginde bir filtreleme yok. 15 bin kayıt icin 6-8 sn suresi tamamen bu sorgunun calistigi makineye ve sorgunun işlendiği server bağlı. Yani senin ortamında 6-8 sn sürebilir, benim ortamımda 4-5sn ya da 9-10 sn. RAM, disk hızları, network ... bir suru etkileyen şartlar var.

    Oncelikle, backende gönderdiğin komutun ne olduguna bak. Baslibasina onu kullanarak hızlara bak. Entity framework'un hiz saglamadigini, oyle bir amaci olmadigini (hatta daha yavaş oldugunu) unutma. Yazim kolayligi sağlamasına karşın arka planda gereksiz görünebilecek bir suru database komutu calistiriyor. 

    Her şey bir yana, neden 15 bin satirlik tablonun tamamini çekiyorsun ki.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    25 Şubat 2020 Salı 13:16
    Yanıtlayıcı

Tüm Yanıtlar

  • IQueryable için LINQ sorguları hedef provider'a göre dönüştürülür. Yani tümünü çekmez. Fakat, örnekde bir filtreleme işi yok. Şüphe duyduğunuz sorguyu paylaşabilir misiniz?

    www.cihanyakar.com

    25 Şubat 2020 Salı 12:43
  • 15 bin satirlik verini entity framework ile 6-8 saniyeye çekme normalmı? Tüm tabloyu?

    ToList yaparasam o zaman şarta bakmadan tüm tabloyu çekicek öylemi doğrumu anladım?

    25 Şubat 2020 Salı 12:46
  • Cihan'in dediği gibi, senin yaptiginde bir filtreleme yok. 15 bin kayıt icin 6-8 sn suresi tamamen bu sorgunun calistigi makineye ve sorgunun işlendiği server bağlı. Yani senin ortamında 6-8 sn sürebilir, benim ortamımda 4-5sn ya da 9-10 sn. RAM, disk hızları, network ... bir suru etkileyen şartlar var.

    Oncelikle, backende gönderdiğin komutun ne olduguna bak. Baslibasina onu kullanarak hızlara bak. Entity framework'un hiz saglamadigini, oyle bir amaci olmadigini (hatta daha yavaş oldugunu) unutma. Yazim kolayligi sağlamasına karşın arka planda gereksiz görünebilecek bir suru database komutu calistiriyor. 

    Her şey bir yana, neden 15 bin satirlik tablonun tamamini çekiyorsun ki.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    25 Şubat 2020 Salı 13:16
    Yanıtlayıcı