eka7a
openix.io
Kullanıcı
-
Üyelik
18.06.2013
-
Yaş/Cinsiyet
39 / E
-
Meslek
Yazılımcı
-
Konum
Bursa
-
Ad Soyad
E** K**
-
Mesajlar
651
-
Beğeniler
109 / 313
-
Ticaret
2, (%100)
atanik Veritabanından gelen kayıtları limit özelliği ile limitlendirin. Örneğin ilk 100 kayıt çağıracak şekilde. Daha sonra bunu döngüye sokarak 100 un katları şeklinde tüm kayıtları çağırana kadar tekrar ettirin.
Eger liste şeklinde ekrana basılacaksa yine limitlendirme yaparak sayfalama yapmalısınız.
Aksi taktirde limitlendirme yapmadığınızda tek seferde tüm kayıtları çağırır ve tümüne ulaşamadan timeout a düşersiniz.
1 kişi bu mesajı beğendi.
Openix.io | $9.90 PositiveSSL | $12.90 RapidSSL
-
Üyelik
11.09.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İzmir
-
Ad Soyad
A** K**
-
Mesajlar
1077
-
Beğeniler
361 / 361
-
Ticaret
33, (%100)
Döngü içerisinde veritabanı hit, bir yazılımcının en çok kaçınması gereken konulardan biridir. Kaldı ki siz 7 kez içeri giren bir döngü içerisinde bunu yapıyorsunuz.
Yani veritabanına 323.190.000 kez gidip geliyorsunuz. Sorgunuz 0,001sn sürecek şekilde bile çalışsa 323.190 sn = 5.386 dk = 89,7 saat = 3,7 gün sürer.
Bu hesabı yaparken saniyede 1000 sorgu çalıştıracak bir performansla bu işin gerçekleştiğini varsaydık Burada temel sıkıntı her seferinde veritabanına git gel yapmak gerektiğidir. Sorgunuzu inceleyecek vaktim şuan yok, ama doğru yol bu değil. Olabildiğince az veritabanı git gel yapmanız gerekmekte. Yani mevzu 320milyon veri çekmek değil, veritabanı bunu gayet rahat yönetebilir, sorun 320 kez veritabanından istek yapıp cevap almayı beklemekte.
Böyle bir durumda zaten timeout süresini uzatmak, kaldırmak da sorununuzu çözmez. Ki çözüyor olsa da zaten bu bir çözüm değil üst kapatma olur. Yapmanız gereken döngü içerisinde olabildiğince az sorgu kullanmak. Hele iç içe döngü içerisinde böyle bir şeyi hiç bir zaman kullanmamak, çünkü her içe soktuğunuz döngüde kartezyan çarpımı olarak üst döngünün dönüş sayısı x iç döngünün dönüş sayısı kadar veritabanına istek atıp cevap beklersiniz.
5 kişi bu mesajı beğendi.
-
Üyelik
14.01.2018
-
Yaş/Cinsiyet
52 / E
-
Meslek
Programcı
-
Konum
İzmir
-
Ad Soyad
S** S**
-
Mesajlar
319
-
Beğeniler
4 / 111
-
Ticaret
0, (%0)
Sen tam olarak ne yapmak istediğini biraz daha aç. Ona göre ya düzgün bir sql sorgusu yazalım olmadı tabloyu hafızaya alıp oradan dönersin. Bu şekilde olmaz.
Kafanda kurduğun algoritmaya çözüm isteme, ne yapmak istiyorsan tam olarak detaylı bir biçimde anlat ki düzgün bir şekilde çözülsün.
1 kişi bu mesajı beğendi.
-
Üyelik
26.11.2010
-
Yaş/Cinsiyet
42 /
-
Meslek
bilgisayar mühendisi
-
Konum
-
Ad Soyad
A** T**
-
Mesajlar
79
-
Beğeniler
40 / 6
-
Ticaret
0, (%0)
no,tarih,oran HARİÇ diğer kolonlarda aynı olanlar mevcut. Bu sorun olur mu , yani hepsi aynı değil ?