lostyazilim
tr.link

320 milyon sorguyu nasıl çalıştırırım?

23 Mesajlar 3.769 Okunma
lstbozum
tr.link

atanik atanik WM Aracı Kullanıcı
  • Ü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)
merhaba veri tabanım da yaklaşık 6289 tane kayıt var ve ben bu kayıtların değerleri arasında iç içe 7 döngü ile sorgu yapmak istiyorum. kodu yazdım çalışıyor fakat web sitemde Request Timeout veriyor. bu konuda çok bilgim yok o nedenle sizlere sormak istedim.tüm işlemleri aynı anda yapmaya çalışması yerine belirli işlem yapıp sonra tekrar yapması için ne yapabilirim?

not:kendi bilgisayarımda localhost kurdum şu an deneme yapıyorum ama ne zaman hata verir diye merakla bekliyorum. (Request Timeout maximum yaptım.)

Güncelleme:
1- timeout vermemek için cmd komut istemi ile çalıştırıyorum. Çünkü bu iş herhangi bir hizmet vermek için değil sadece geçici olarak hesap yaptırabilmem için gerekli olduğundan amaç sadece sonuçları öğrenmek.

2-iç içe olan döngülerden 2 tanesini kaldırdım. bunların array içindeki değerleri 5 ve 10 taneydi. gerekirse manuel 50 dosya oluştururum diye düşündüm. Fakat bu 2 döngüyü de kaldırmam çok birşey kazandırmadı.Sabaha kadar bilgisayarı açık bıraktım ve çok yol alamamışım. Birde bunun gibi 50 dosya daha çalıştırmak çok zaman alacak.

Konuyu çok iyi açıklayamadığımı düşündüğüm için ve özel mesajla gelen sorulardan dolayı tekrar detaylı anlatmaya çalışacağım.

Bir excel dosyam var. toplamda 10 kolon ve son 7 kolonda çeşitli değerler var. toplam 6289 adet kayıt var.

bu 7 kolon içindeki değerlerin aynı olanları mevcut. Benim yapmak istediğimde aynı olanları bulup bu aynı olanların 3.sıradaki kolonda yer alan %oran değerlerini toplayıp ekrana yazmak.

excell tablosu ve filtreleme:

https://i.hizliresim.com/nbn2jR. png" />



7 kolonun içindeki değerleri array içine yazdım. Çünkü ardışık değiller.




veri taban yapısı bu şekildeı:




işlemler yapıldıktan sonra almak istediğim ekran çıktısı




tüm bu işlemler için iç içe 7 tane döngü kullandım. browser ile bunu çalıştıramıyorum. çok uzun sürdüğünden timeout veriyor. kendi bilgisayarıma localhost kurdum ondada yine browser ile çalıştıramıyorum. Bu sorun değil, cmd komut istemi ile php dosyasını çalıştırıp ekrana basılan çıktıyı kopyalayabilirim.

Acaba farklı bir mantık ile kısa sürede bu işi çözebileceğimiz fir fikir olabilir diye sizlere sormak istiyorum.
 

 

wmaraci
reklam

LizGate LizGate Lizgate Kullanıcı
  • Üyelik 30.03.2019
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılımcı
  • Konum Muğla
  • Ad Soyad A** Y**
  • Mesajlar 93
  • Beğeniler 12 / 47
  • Ticaret 3, (%100)
Optimize bir kod olmayabilir. Data örneği ve yazdığınız sorguyu paylaşırsanız çözüme daha çabuk ulaşırsınız
atanik

kişi bu mesajı beğendi.

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Daha önce hiç kullanmadım, nasıl çalıştığını bile tam bilmiyorum ama PHP de yield diye bir kavram var, bu tür yüksek bellek harcayan işlemler için kullanılan, belki araştırsanız bir şeyler çıkabilir.
atanik

kişi bu mesajı beğendi.


srkn12 srkn12 PHP - Javascript - Java Kullanıcı
  • Üyelik 28.03.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilişim
  • Konum Denizli
  • Ad Soyad S** K**
  • Mesajlar 411
  • Beğeniler 67 / 90
  • Ticaret 0, (%0)
atanik php de zaman sınırlaması var aşağıdaki kod işine yarayabilir bir dene istersen.



set_time_limit(20); // Zaman sınırlamasını 20 saniye olarak ayarlar.
set_time_limit(0); // Zaman sınırlamasını devre dışı bırakır.

atanik

kişi bu mesajı beğendi.

wmaraci
wmaraci

atanik atanik WM Aracı Kullanıcı
  • Ü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)
htacces içine,
RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]

yazılabilir diye okumuştum şu an onu deniyorum ama hata verir mi bilmiyorum.
 

 

atanik atanik WM Aracı Kullanıcı
  • Ü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)

LizGate adlı üyeden alıntı

Optimize bir kod olmayabilir. Data örneği ve yazdığınız sorguyu paylaşırsanız çözüme daha çabuk ulaşırsınız


https://www.dosya.tc/server25/cnvau2/index5.zip.html

arkadaşlar kodu buradan indirebilirsiniz.

veri tabanı:




ekran çıktısı



veri tabanı içindeki sayılar:

 

 

srkn12 srkn12 PHP - Javascript - Java Kullanıcı
  • Üyelik 28.03.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilişim
  • Konum Denizli
  • Ad Soyad S** K**
  • Mesajlar 411
  • Beğeniler 67 / 90
  • Ticaret 0, (%0)
atanik aslında zaman sınırlamasını devre dışı bırakmak iyi değil çünkü sunucuyu yorabilir LizGate 'nin dediği gibi optimize bir kod olmayabilir yani sorgulamayı uzun yoldan yapıyor olabilirsin kod bloklarını paylaşırsan farklı çözümler üretebiliriz.
atanik

kişi bu mesajı beğendi.

atanik atanik WM Aracı Kullanıcı
  • Ü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)

LizGate adlı üyeden alıntı

Optimize bir kod olmayabilir. Data örneği ve yazdığınız sorguyu paylaşırsanız çözüme daha çabuk ulaşırsınız

kod aslında çok fazla değil sadece iç içine 7 tane döngü oluyor olması işi zorlaştırıyor. yaptığı işte çok fazla değil. sadece sorgudan gelen sonuçlardaki bir alanı topluyor.
 

 

atanik atanik WM Aracı Kullanıcı
  • Ü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)
bahsetmiş olduğum iç içe döngülerin bulunduğu kod alanı

 

 

srkn12 srkn12 PHP - Javascript - Java Kullanıcı
  • Üyelik 28.03.2018
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilişim
  • Konum Denizli
  • Ad Soyad S** K**
  • Mesajlar 411
  • Beğeniler 67 / 90
  • Ticaret 0, (%0)
atanik dizelerdeki değerler sabit mi değişken mi?
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al