Veritabanı Erişiminde Yavaşlama

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
ifthen
Üye
Mesajlar: 42
Kayıt: 13 Nis 2006 09:43

Veritabanı Erişiminde Yavaşlama

Mesaj gönderen ifthen »

Arkadaşlar merhaba;

Firebird de bir veritabanı oluşturdum. Bu veritabanını delphide kullanıyorum. Program hızı veri girdikçe kademeli olarak düşmeye başladı. Tablolar çok geç açılıyor. Erişim çok yavaşladı. Tablolarda şu an 400-500 civarında kayıt var. Veritabanını sql 3 ve page size 1024 ile oluşturmuştum. Bu yavaşlamayı nasıl giderebilirim. Yardımlarınız için şimdiden teşekkürler...
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

indexler tanımlayarak yapabilirsin. en sık kullanılan sıralama ölçütüne göre indexler oluştur.
ifthen
Üye
Mesajlar: 42
Kayıt: 13 Nis 2006 09:43

Mesaj gönderen ifthen »

Bir form üzerinde 7 tane tablo form yüklenirken açılıyor. Bu tabloların bir 4 tanesinde ID alanı yok. Tarih alanlarına göre sıralama yaptırdım. Bu tablolarara ID alanı eklesem ve primary key özelliği versem hıza etkisi olurmu. Bir de page size ın xp için ideali kaçtır.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Pagesize konusunda eger aramayı kullanırsanız faydalı bilgiler bulacaksınız.
Optimum pagesize secimi hıza cok etki etmekte.
Aynı zamanda her tabloda bir ID benzeri primary key alan bulundurmak her zaman faydalı.
ÜŞENME,ERTELEME,VAZGEÇME
ifthen
Üye
Mesajlar: 42
Kayıt: 13 Nis 2006 09:43

Mesaj gönderen ifthen »

Arkadaşlar pagesize ile ilgili açıklamayı okudum. Ayarları ona göre değiştirdim. Ayrıca index ekledim. Yanlız hızda çok az bir değişiklik oldu. Projemde 23 tablo var. Bunların hepsi için tek bir IBtransaction ve IBdatabase kullandım. Yani tabloların açılması normalden çok yavaş. Acaba ne gibi bir problem olabilir. Yardımlarınız için şimdidedn çok teşşekürler...
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

ibtable yerine ibdataset kullan
ve eger gerekmiyorsa tum tabloları aynı anda acma , kullanacagın zaman ac...
ÜŞENME,ERTELEME,VAZGEÇME
ifthen
Üye
Mesajlar: 42
Kayıt: 13 Nis 2006 09:43

Mesaj gönderen ifthen »

Gkimirti cevapların için teşekkürler. Benim ilk firebird projem bu. Dolayısıyla firebirdde eksiklerim var. Bu yavaşlama delphideki tablo kullanımından değilde sanki bir şeyleri yanlış yaptığım için kaynaklanıyor. Çünkü tabloların en büyük olanında 450 kayıt var. Diğerlerinde daha az bu sayı. Mesala 450 kayıt bulunan forma tıkladığımda 3-4 saniye arasında açılıyor. Bu form tek tablo içeriyor. Forumdaki yazıları okudum. ID ekledim. Ama hızda fazla değişme olmadı. Firebirdde hız için özellikle hangi konulara dikkat edilmeli. Yardımlarınız için teşekürler...
ifthen
Üye
Mesajlar: 42
Kayıt: 13 Nis 2006 09:43

Mesaj gönderen ifthen »

Bir de bilgisayarımda firebird 1.5 kurulu.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

içime devexpress grid kullandığın hissi doğdu. Otomatik boyutlandır seçeneğini seçmişsen devexpress çok yavaş çalışır. datasource nesnesini enable özelliğini false yapıp formun show olayında tekrar açarsan biraz hızlanır. ayrıca dediğim gibi applybestfit kullanmaktan kaçın.
Kullanıcı avatarı
sahinemrah44
Üye
Mesajlar: 13
Kayıt: 21 Nis 2004 10:42
Konum: Malatya

Mesaj gönderen sahinemrah44 »

merhaba anladığım kadarıyla tablolarını open yapınca açışılı uzun sürüyor. o içindeki 400 kayıttan kaynaklandığını sanmıyorum.
1-ibdataset kullanıyorsan sql kodunu kontrolet ve buraya yaz bakalım.
2-ibtable kullanıyorsan bunda filitrelem benzeri gibi bir şey yapıyorsan bundan kaynaklanabilir.
3.ibexpert programını kullanarak yavaş çalışıyor dediğin tablona bu program üzerinden ulaş bak bakalım yine yavaş mı???
ifthen
Üye
Mesajlar: 42
Kayıt: 13 Nis 2006 09:43

Mesaj gönderen ifthen »

Arkadaşlar quantum grid kullanıyorum. Otomatik boyutlandır seçeneği aktif değil. Tabloları zaten formun create olayında açıyorum. Bir de IBTable kullanıyorum ve IBexpert ile aynı tablolar normal bir şekilde açılıyor.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ibtable yerine ibdataset kullan.
tabloları tek tek ibdatasete çevirerek sorunun ondan mı kaynaklandığını görebilirsin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

IBDataset kullanıyorsan(kullanmıyorsan da kullanmalısın) eğer tablolarında ne kadar sayıda kayıt olursa olsun o sadece ilk kaydı çeker.(Eğer grid kullanıyorsan da griddeki satır sayısı kadar kayıt çeker.Bir formun üzerindeki gridde de olsa olsa en fazla 10-15 satır olur.).Dolayısıyla tablolarının açılışında yavaşlama olmaması lazım. Ama tablolar açıldıktan sonra Last çeken bir kod olabilirmi acaba yada onun benzeri bir kod v.s.

Databasein lokaldemi, yoksa ağda başka bir makinedemi?
Eğer lokalde değilse ağ trafiğinden kaynaklanan bir yavaşlama olabilirmi acaba?

Birde açılma süresini tam olarak yazabilirmisin?Yani yavaş dediğin süer ne kadardır?

Belk bu bilgilerle yardımcı olunabilir?
Kolay Gelsin.
Kullanıcı avatarı
undefined
Moderator
Mesajlar: 565
Kayıt: 06 Eki 2003 12:01
Konum: Bursa
İletişim:

Mesaj gönderen undefined »

http://www.progdigy.com/ dan
UIBSQLMONITOR ü yükleyip firebird ile programın arasındaki trafiği analiz edebilirsin. Belki bu yavaşlığın kaynağı açısından sana bir fikir verebilir. Mesela yanlış bir tasarım mantığından dolayı Table ların 2-3 kere refresh oluyo olabilir bunları görmen açısından hangi querylerin kaç kere çalıştığını tespit etmen yararlı olabilir.
Kullanıcı avatarı
sahinemrah44
Üye
Mesajlar: 13
Kayıt: 21 Nis 2004 10:42
Konum: Malatya

Mesaj gönderen sahinemrah44 »

tekrar merhaba arkadaşların dediği şeylerin hepsindende kaynaklanabilir.ibtable kullanıyorum demişsin bunda filitrelemeyi kullanıyorsan veya diğer tablolarınla master source ile bir bağlatı yapıyorsan yavaşlama olabilr.sana önerim,
1-formun create olayında table open yapma açlıcak olan forma bir button koy ve table o button içinde open yap böylece formun açılışındamı yoksa table'ın açılısındanmı kaynaklandığını anlayabilirsin.
2-şuanda kullanıdığın ibtable pasif yap ve forma bir tane daha ibtable koy db bağlantını yap ve tekrar open yap bakbakalım yine yavaşmı???
Kolay gelsin.
Cevapla