Master Detail ( islem cok yavas )
Master Detail ( islem cok yavas )
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...
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
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
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
IBDataSet'i IBTable'a bagladigimda daha mi hizli olur sence? Bu ikiliyi birbirine baglamak neden onlarca hatayi beraberinde getiriyor?
Ben IBDataSet'i yine IBDataSet'lere bagladim. yukarida da belirttigim gibi IBDataSet'i IBTable'a baglamayi basaramadim

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

IBDataSet'i IBTable'a bagladigimda daha mi hizli olur sence? Bu ikiliyi birbirine baglamak neden onlarca hatayi beraberinde getiriyor?
kıdemsiz üye
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...
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
@aslangeri nin bahsettiği ilişkili alanlar için primary key de alabilir fakat başka alanları birbirine ilişkilendirmişsen
ş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
Foreign key ler ise sadece diğer tablo ile ilişki içindir. 
Kod: Tümünü seç
create index on table_adi(alanlar);


Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!