Master Detail ( islem cok yavas )
ikra13.08.2005 - 08:31:51
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...
 
aslangeri13.08.2005 - 10:39:21
s.a.
master/detail ilişkisi kurduğunuz alanlara göre indeks varmı.
kolay gelsin.
 
ikra13.08.2005 - 10:58:20
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 Embarassed

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 Rolling Eyes

IBDataSet'i IBTable'a bagladigimda daha mi hizli olur sence? Bu ikiliyi birbirine baglamak neden onlarca hatayi beraberinde getiriyor?
 
aslangeri13.08.2005 - 11:22:38
s.a.
sen vt de indeks oluşturdunmu onu soruyorum.
 
ikra13.08.2005 - 11:31:24
index derken primary key i ve foreign keyi kasitediyorsan eger evet olusturdum. farkli bir index leme olayi var ise bilmiyorum Embarassed
 
ikra13.08.2005 - 11:32:47
evet olusturmusum. indexname iki adet var. biri pk_komunikasyon digeri ise fk_komunikasyon.
 
ikra13.08.2005 - 11:37:33
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...
 
rsimsek13.08.2005 - 11:48:43
@aslangeri nin bahsettiği ilişkili alanlar için primary key de alabilir fakat başka alanları birbirine ilişkilendirmişsen
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
 
ikra13.08.2005 - 11:55:53
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 Rolling Eyes :(
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com