bu kod ile toplam 500 kayıt yaklaşık 11 saniyede ekleniyor. tabloda sinavno ve ogrno index alanlar olmak üzere, bu süre çok gibi geldi bana. firebird1.5 üzerindeki tablomda 45 alanım var. acaba alan sayısı çok fazla olduğu için olabilir mi. eğer öyle ise bunları iki parçaya ayıracağım. yada sorun iki index kullandığım için olabilir mi? bu konuda bir iki cevap okudum sitede genelde index ile alakalı sorun olduğu yazıyordu. buda belki o türden bir sorundur. ayrıca tabloda veri arttıkça bu süre gitgide atrıyor yani 1000 kayıt olunca 16 saniye gibi muazzam bir seviyeye ulaştı.1500 kayıt varken 500 kayıt ekleme 25saniye. bu normal değil gibi? ama ben firebirde baya yeni geçtim 2 aydır filan kullanıyorum. yardımlarınızı bekliyorum. yada ben bu verileri doğrudan sql ile mi ekleyeyim.
Tabi ki indekslerin fazla olması kayıtı yazarken bir de index file lara yazmasını gerektirir.
Peki şunu sorayım, uygulama anında genellikle böyle anlık olarak yüzlerce kayıt girişi mi olacak? Olmayacaksa bu hız merakınız nedir?
Not: Malum son günlerde otomobil de hız rekoru kırılarak 388 km/s ye çıktı. Çıktı da bize pratik olarak ne faydası oldu diye sormak lazım Çünkü otobanda maks hız 130 km/s
insert trigger i yazmıs iseniz bu da etkileyebilir
eger string alanlar icin index olusturmus iseniz insert hızını etkiler
dediginiz gibi kayıt sayısı arttıkca bu sure dakikalara kadar cıkar
Indexler geçici olarak deaktif edilebiliyor. Ancak bu olay PK ve FK'lerde yapılamıyor. Gerçi sistem table'ları üzerinde oynayarak yapılabilir.
Bunların dışında indexlere sahipseniz (komuttan emin değilim) "ALTER INDEX IndexAdi INACTIVE" yapıp, kayıt işlemi bittikten sonra yeniden açabilirsiniz. "ALTER INDEX IndexAdi ACTIVE"
Bu komutlar insert esnasında index oluşmasını engeller. Yani index ler güncellenmez. Dolayısıyla bariz bir performans farkı oluşabilir. Index i yeniden açtığınızda index ler yeniden oluşturulur.
@rsimsek haklısınız hız merakı oldukça fazla bendede var herhalde. bu haftada 1-2 kez yapılacak bir sınavın değerlendirme modülü. burada öğrencilerin doğru yanlış tepitleri gerekli düzeltmeler,frekans analizi gibi işlemler gayet hızlı yaşlaşık 0,06 saniye ancak sonuçları veritabanına yazmak gitgide artıyor. ve hiç hoş değil. algoritma analizinde ki tüm bildiğim yöntemler ile hesaplama kısımlarını baya hızlı yapıyorum. ayrıca record yapılarını da kullanarak ta gayet sade,kolay ve anlaşılabilir bir kod elde ettim. ancak kayıtları veritabanına yazayım deyince böyle bir tablo karşıma çıktı. şimdi öncelikle sınav no ile ogrenci numarasını birleştirerek yeni bir ve tek bir index alan oluşturmayı deneyeceğim. yada @coderlord kardeşimin önerisini yapabilirsem, gecici olarak bunları pasif yapıp sonra aktif hale getireceğim. başka önerisi olan kardeşim varsa önerilerini bekliyorum. teşekkürler. ii çalışmalar
Table'da toplam kaç kayıt var da 11 Saniye Yavaş diyorsunuz?
Kaç index var, ve indexler hangi alanlardan oluşuyor?
Table'a bağlı FK var mı?
Table'a bağlı Trigger var mı?
Bunları SP'ye taşıyamaz mısınız?
Peki donanım olarak makina nedir? İşletim sistemi? FB Versiyon? Diskler? FB ile çalışan program aynı makinada mı? FB ile program ayrı makinalarda ise, network bağlantı hızı nasıl? Networkde iseniz trafik nasıl?
Gibi pek çok etmen sizin hızınızı etkiler.
Örneğin bugün ben bir deneme yapmıştım, Aynı FB Server üzerinde DBWorkbench DataPump'ı ile bilgileri (16,000,000 kayıt) diğer bir DB'ye attım. Ortalama Okuma ve yazma hızı yaklaşık 6,500 Kayıt / Saniye...
Ama indeks koyup aynı denemeyi yapmaya başladım bu hız 10'da bir düştü diyebilirin. 1 PK 4 İndex hem string hem integer vs. karışık 4 tane indexi var.
Bunları düşünün, etmenleri göz önüne alın şu anki hızınızın yavaş mı yoksa hızlımı olduğuna kendiniz karar vereceksiniz.
Hepinize teşekkür ederim. sorunumu çözdüm. indexleri kaldırdım. uygun bir PK ile sorunu çözdüm şu anda toplam hesaplama ve kayıt etme 2-2,5 saniye sürüyor 500 kayıt için.ve bundan önce sql server ile firebirde kayıt ekleyerek denemeler yaptım. sonuçlar beni memnun bıraktı. firebird 5000 append olayını 5,3 saniyede, sql server 5000 kaydı 6,6 saniyede yaptı. 25000 kaydı 27 saniyede ekledi. 25000 kayıt varken üzerine bir 25000 kaydı 21,6 saniyede ekledi.50000 kayıt varken 25000 kayıt daha ekledim. O da 22 saniye sürdü. Maşallah Mercedes gibi gaza bastıkça pardon kayıt ekledikçe açılıyor. Allah firebird ü yazanlardan razı olsun. firebird ü bize şiddetle tavsiye eden kullanmasını öğreten Abilerimizden de Allah razı olsun. herkese ii çalışmalar. kolay gelsin
Not:Bu sonuçları AMD Athlon 1,2 GHZ işlemcili,maxtor ata 7200rpm ultra133 diske sahip, 384MB DDR bellekli bilgisayar üzerinde. Kendi üzerinde kurulu Firebird 1.5 ve Sql Server 2000 ile aynı tablo ve PK ler ile yaptım.