Master Detail ( islem cok yavas )

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Master Detail ( islem cok yavas )

Mesaj gönderen ikra »

selamu aleyküm...

arkadaslar IBDataSet ( firebird ) ile masterdetails olayini gerceklestirdim.

IBDataSet - IBTable denedim fakat basarili olamadim. onun icin IBDataSet - IBDataSet yaptim...

17 adet IBDataSet var ve bunlarin 16'si da ayni IBDataSet e bagli. birinci IBDataSet isci nin ID sini aliyor ve digerleri ise bu isciye ayit olan bilgileri 16 ayri tablodan cekiyor. buraya kadar hersey ok. her hangi bir islem gerceklestirmek istedigimde, silmek olsun, insert olsun veya modifiy olsun islemler cok yavas sürüyor. sanirim bir islem gerceklestirdigimde 17 query kapanip yeniden aciliyor. bu da islemi oldukca uzun hale getiriyor. her bir islem en az 8 saniye sürüyor...

bu olayi daha farkli nasil yapabilirim?
forumda aramadigim yer kalmadi, bir cok masterdetail iliskisi buldum fakat IBDataSet ile IBTablo baglantilarini bir türlü anlayamadim. ( yaslaniyor muyum ne? )
bana bu olayi kisaca anlatabilirseniz minnettar kalirim...

her iki sorumun cevabini alabilirim insaAllah...

selam ve dua ile...
ikra...
kıdemsiz üye
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
master/detail ilişkisi kurduğunuz alanlara göre indeks varmı.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

hocam bildigim kadari ile IBDataSet'i IBTable'a bagladiginda index olayi olmuyormu?
Ben IBDataSet'i yine IBDataSet'lere bagladim. yukarida da belirttigim gibi IBDataSet'i IBTable'a baglamayi basaramadim :oops:

ve ana IBDataSet bir islem gerceklestirdiginde, o'na bagli tüm IBDataSet ler yeniden close, open oluyor... bu sekilde 8 saniye gibi bir zaman kaybediyorum. elbette ki bu network un hizina göre degisecektir. iyiler zaten bizim diye kötüleri degerlendiriyorum... ya müsterinin network u benimkinden kötü ise :roll:

IBDataSet'i IBTable'a bagladigimda daha mi hizli olur sence? Bu ikiliyi birbirine baglamak neden onlarca hatayi beraberinde getiriyor?
kıdemsiz üye
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
sen vt de indeks oluşturdunmu onu soruyorum.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

index derken primary key i ve foreign keyi kasitediyorsan eger evet olusturdum. farkli bir index leme olayi var ise bilmiyorum :oops:
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

evet olusturmusum. indexname iki adet var. biri pk_komunikasyon digeri ise fk_komunikasyon.
kıdemsiz üye
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

hocam eger indexname i secersem indexfieldname siliniyor ve active true yaptigimda unknown error diye alert aliyorum. bu hem pk hem de fk icin gecerli.
IBDataSet in sql ini yazdim field larini ekledim. daha sonra IBTable koydum ve tablename i sectim, database sectim, mastersource olarak IBDataSet in datasource unu sectim, daha sonra masterfields i acip iki id yi birlestirip add tusuna bastim. sonra active true yaptigimda hic bir sonuc alamiyorum. o isciye ayit komunikasyon bilgileri gelmiyor ekrana...

makale ve ipucu bölümünde de aynen bu sekilde anlatiyor. birebir yapiyorum. sonuc degismiyor... bir yerde hata yapiyorum ama nerede...
kıdemsiz üye
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

@aslangeri nin bahsettiği ilişkili alanlar için primary key de alabilir fakat başka alanları birbirine ilişkilendirmişsen

Kod: Tümünü seç

create index on table_adi(alanlar); 
şeklinde veya IBExpert gibi bir araçla ikincil indekslerini oluşturmalısın. Bu indeksler hızı algoritmanıza da bağlı olarak bariz bir şekilde artıracaktır. Ayrıca çok sayıda tablo da perfomansı azaltacaktır. Mümkün olan ortak alanları tek tabloda toplamakta fayda var :wink: Foreign key ler ise sadece diğer tablo ile ilişki içindir. :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Mesaj gönderen ikra »

hocam index i olusturdum. simdi index i secince unknown error diye bir hata aliyorum. hatta makale ipucu bölümüne baktim create index yok bir foreign key var bir de primary oradan yola cikarak düzenliyorum yine olmuyor. unknown error :roll: :(
kıdemsiz üye
Cevapla