C# Ve Entity Framework ?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    undefined-01
    undefined-01's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    Merhabalar;

    Bir projede Entity yuzunden agizim yandi. Sizinlede paylasip goruslerinizi almak istedim.

    Baslangicta hersey oldukca guzel calisiyor ve datalarim sorunsuz isleniyordu. Bir iki hafta icerisinde data sayim 2 milyona db boyutumda 1,2 gb ye ulasti. Sistem de agirlasmanin otesi var.

    SQL profiler zimbirtisi ile bir baktim ki Sorgu db deki butun kayitlari cekiyor cliente getiriyor ve linq ile onu client tarafinda filtreliyor :s

     


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ercan
    Ercan's avatar
    Kayıt Tarihi: 04/Temmuz/2008
    Erkek

    o kadar kayıt olan bir proje geliştirmedim hiç tecrübe olmuştur,

    birde sql server'ın kapasitesini de merak ediyorum, sanırım tecrüben var o yüzden sana soruyum

    klasik yöntemle verileri çekerken kaç bin kayda kadar sorun çıkarmaz? en son yaptığım programda mesela 50-60 bin kayıt vardı, programı aynı anda 20 kişi kullanıyordu ve herhangi bir sorunda çıkartmıyor? (ms sql local bir bilgisayarda yüklüydü)

    kaç bin kişi daha eklerlerse sorunlar çıkmaya başlar?


    IF YOU ARE NOT TİRED, YOU ARE NOT DOING IT RIGHT
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Google
    Google's avatar
    Kayıt Tarihi: 26/Ağustos/2005
    Erkek

    Kod tarafından veriyi nasıl çekiyorsun kod parçacığı verirsen daha kolay yardımcı olabiliriz. 


    Abra Kadabra
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Helyum
    Helyum's avatar
    Kayıt Tarihi: 19/Haziran/2009
    Erkek

    kullandıgın db nedir hocam? eger oracle ise index calısması yaparak sadece aramak istedigin kolonları belirtirsen kasma problemin çozülür.

    benim db'nin boyutu yaklasık olrak 35 GB. en cok kullanılan tablolar (columns sayısı fazla olanlar) için index yapmışım sadece istedigim kolonda sorgu cektiriyorum.

    birde yukardaki arkadasın dedigiği gibi sql cumlende önemli.


    http://www.youtube.com/watch?v=n-O0mSUNVlU
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Hocam datanın boyutu entityi ilgilendirmez, yapısı ilgilendirir.

    Sen ne istersen entity onu verir.

    var data=from p in db.tablo select p;

    dersen hepsini çeker

    var data=(from p in db.tablo select p).Skip(20).Take(10);

    dersen sadece ihtiyacın olan yerdeki 10 kaydı alırsın.

    Projenin ağırlaşması ile alakası olmadığına eminim.

    onun dışında where in yanına yazdıklarına dikkat et. string aramalar full textli değilse kanırtır tabiki makinayı

    1,2 GB çerez hocam, 80 gb lik tek db var sistemimde hiç problem yaşamıyorum.

     

    Birçok developer, firma gördüm ki şirket içinde kullandıkları database 3 gb'a gelince 100.000 dolarlık server sistemleri toplayıp sistem odası kurmaya başlıyorlar. Tabi gotumle gülüorum. cok daha dandik makinalarda 8 gb database'e burda aynı anda 200 civarı kişi sorgu çekiyor, arama yapıyor 50 ms'i geçmiyor hiçbir sayfanın sorgusu nerdeyse.

     

    HolyOne tarafından 07/Ara/12 11:32 tarihinde düzenlenmiştir

    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    undefined-01
    undefined-01's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    Soru cok yanlis cikmis benden :) Store Procedure kullaniminda sıkınti var aslinda. 

    SP kullanacak oldugumda bir Return table olusturmak zorunda kaliyorum yoksa Entity SP nin sonucunu getiremiyor. (karsiliginda table olmadigi icin)

    Bu noktada sayfalama sistemi olan ekranlarda butun datayi cliente cekip clientte datayi sayfaliyor. benim asil sorunum buydu. (Suanda cozuldu aslinda)

    Ama kizdigim nokta Entity cok sacma bir sekilde datayi c# mantiginda getiriyor. klasik SQL den kullanmak ile Entity den kullanmak Performansi fiziki anlamda etkiliyormu bunu bilmiyorum. Eger bir extra arti katmiyorsa (kendi adima) kullanmak cok sacma.

    Bu Entity kavramina alisamiyorum nedense :S


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    son yazdığını tam anlamamakla birlikte sp nin neden tüm datayı çekmesi gerekiyor? sp ne belli parametreler verip ona göre çektirebilmelisin?

    entity de sql sorgusunu da yazabilirsin.  karşılaştırmalara göre ado.net daha hızlı entity den ama kullanım kolaylığı ve esneklik açısından entity bir

    çok ameleliği kaldırıyor. son olarak asenumerable olarak cast etme, asQuerable olarak cast et çünkü asenumarable where() i uygulamadan önce

    tüm tabloyu belleğe yüklüyor bu da gerekli değil. bu küçük ama önemli şeye dikkat et :)

     

    kolay gelsin


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Google
    Google's avatar
    Kayıt Tarihi: 26/Ağustos/2005
    Erkek
    rakkoc bunu yazdı

    Soru cok yanlis cikmis benden :) Store Procedure kullaniminda sıkınti var aslinda. 

    SP kullanacak oldugumda bir Return table olusturmak zorunda kaliyorum yoksa Entity SP nin sonucunu getiremiyor. (karsiliginda table olmadigi icin)

    Bu noktada sayfalama sistemi olan ekranlarda butun datayi cliente cekip clientte datayi sayfaliyor. benim asil sorunum buydu. (Suanda cozuldu aslinda)

    Ama kizdigim nokta Entity cok sacma bir sekilde datayi c# mantiginda getiriyor. klasik SQL den kullanmak ile Entity den kullanmak Performansi fiziki anlamda etkiliyormu bunu bilmiyorum. Eger bir extra arti katmiyorsa (kendi adima) kullanmak cok sacma.

    Bu Entity kavramina alisamiyorum nedense :S

    Hocam kod tarafında entity framework çalışıyorsun tabiki entity kullanıcaksın. Burda senin entitylerinin içinin nasıl dolduğu arkaya nasıl sorgu indirdiğin önemli prosedürle böyle bir problem yaşıyorsan ve o sayfalama prosedürde yer almıyorsa tüm verinin sana geri dönmesi gayet normal. Veriyi prosedürle çekeceksen sayfalamanıda prosedürde ayarlayıp dışarıdan parametreyle sayfa numaranı vs bildirip ona göre veri çekmen gerek.

    Google tarafından 07/Ara/12 11:54 tarihinde düzenlenmiştir

    Abra Kadabra
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    undefined-01
    undefined-01's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo
    unbalanced bunu yazdı

    son yazdığını tam anlamamakla birlikte sp nin neden tüm datayı çekmesi gerekiyor? sp ne belli parametreler verip ona göre çektirebilmelisin?

    entity de sql sorgusunu da yazabilirsin.  karşılaştırmalara göre ado.net daha hızlı entity den ama kullanım kolaylığı ve esneklik açısından entity bir

    çok ameleliği kaldırıyor. son olarak asenumerable olarak cast etme, asQuerable olarak cast et çünkü asenumarable where() i uygulamadan önce

    tüm tabloyu belleğe yüklüyor bu da gerekli değil. bu küçük ama önemli şeye dikkat et :)

     

    kolay gelsin

    Hocam benm asil problem orda anladigim kadari ile zaten. Suan SP'ye cevirdim sorun duzeldi. Ama dedigim gibi bundan sonra Entity kullanmayi dusunmuyorum dogrusu :)


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SpArK
    SpArK's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek
    rakkoc bunu yazdı
     

    EF deki 3 çeşit olan loading tekniklerini uyguluyor musun ? Lazy loading, Eager loading veya explicit ? Belki hızlandırabilirdi her kullandığın datanın otomatik olarak relatedlarını otomatik load etmesini engelleyip, sadece kullanacaklarını kendin load etsen ?

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    undefined-01
    undefined-01's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    Bir PM aldim cevabimida o pm'de paylasmak istedim:

    ------------------------

    selam recep hocam, konunu gördüm de bende yeni yeni giriş yapıyorum entity framework‘e bi yandanda da mvc yi öğrenmeye çalışıyorum. 

     

    bi daha kullanmayı düşünmüyorum demişsin, öğrenmeye devam edeyim mi yoksa zaman kaybı mı merak ettim?

    ------------------------

     

    Ogrenmenin faydasi var.

     

    Ama benim durumum icin soylim; Normalde cok fazla database uygulamasi yapmiyorum. Benim sektor kart uygulamalari (Chipli plastik kart)

     

    Bu yuzden bir Join yapacagim zaman bile google da aranicaksam benim icin zaman kaybi.

    HolyOne hocam mesela yalamis yutmus direk Skip Take filan demis ben daha farkli bir seyler yapmistim. Suan SP'ye cektim o bolumu SP icinde bildigim gibi yazdim; ama Benim isim Veri tabani ile ilgili bu isi ogrenmem lazim diyorsan yeni teknoloji pop kultur calis uzerinde. Benim isime ayda yilda bir basit bir db den 2-3 data cekmek. log tutmak vs. bu yuzden bana gerekmiyor.

     

    bu pm'i de isim vermeden paylasicam hani formda yazdigimi yanlis anlamasin millet.

    Ama Entity oyle cok extrem bir sey katmiyor. sadece daha hizli yazmani sagliyor (iyi hakimsen) obur turlu daha cok ugrastiriyor beni. Ben herseyi birer SP icinde yapip ona gore calisiyorum


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
Toplam Hit: 3045 Toplam Mesaj: 14