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.