arkdaslar 16000 kayıtlı 65 field li bir veri tabanım var
ilk once costumer_id ye gore aratıp istenilen veriyi seciyorum
daha sonra gerekli değişiklikleri yapip
ibdataset1.post dediğimde bi 10 sn bekliyor. kaydı oyle gercekleştiriyor.
veritabınım server uzerinde calişiyor.
yazdıgım kod ta asıgada bu kayıt işlemini ızlandırmamın bir yolu varmı
ibquery edit post işlemi için read-only dataset
hatası verdi bende arastırdım
RequestLive özelligini true yapmam gerekiyormus ama ibquerynin özelliklerinde boyle bisey goremedim
normal query de var
s.a.
ben ibdateset yerine ibquery kullanın demiyorum.
sadece edit ve post işlemini ibquery(ibsql)ile yapın diyorum.
ibquery nin sql ine update sql i yazacaksın.
ibdataseti edit post yaptığın yerde ibquerynin parametrelerine değerleri aktarıp execute edeceksin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
oncellikle bu saatte zaman ayırdıgın icin tesekurler
ibquery ile IBUpdateSQL1 kullanarak 4 sn filen kazanabildim. suan 6 sn bekliyorum.
verdigin cevabı cok net anlamadım.
öncelikle sormak istedigim post ederken bu kadar beklemesi normal mi.
diksacli_prens yazdı:arkdaslar 16000 kayıtlı 65 field li bir veri tabanım var
ilk once costumer_id ye gore aratıp istenilen veriyi seciyorum
daha sonra gerekli değişiklikleri yapip
ibdataset1.post dediğimde bi 10 sn bekliyor.
Bence hocam alan sayısından ziyade bu kısımda bir sorun var olabilir. Post işleminden önce yaptığın işlemlere bir bakmak lazım.
Tablonun afterpost vs. eventlerinde ekstra kod falan yoksa yapacak fazla birşey yok. Zira en temel yaklaşımlardan birini ihmal etmişsin. 16000 kayıt 65 alan demek rahat 100-150 bin kayıt demek. Hele birçok büyük alfasayısal alan veya memo alan da tanımlı ise belki çok daha fazla kayıt demek.
Yapman gereken veri girişlerinde kullanıcının karşısına mümkün mertebe az kayıt çıkartmak olmalı. Ama ben mutlaka bu kadar kayıt çıkartmak zorundayım diyorsan yapacak fazla birşeyin yok. Ne kadar uğraşırsan uğraş 3 saniyeye indirirsin süreyi. 16000 kayıt 50000 oldumu yine başa dönersin.
Gerçi CASHED UPDATES veya dbExpress'in APPLYUPDATES gibi yaklaşımları var ama bunlar biraz karmaşık ve farklı çözüm yaklaşımları.
form1.IBDataSet1PARLIAMENT.Text şeklinde bir kullanımı ilk defa görüyorum. Genelde fieldbyname veya field[] kullanılıyor.
Tablonda primary key yoksa onu ekle.
Mustafa hocam' ın dediği gibi indexler kayıt ekleme işini yavaşlatacağından gereksiz olanları sil. Google daseninkine benzer sorunu olan birinin mesajına yazılan cevaplar.
IBObject bileşenleri ile post ve select işlemlerinin klasik interbase bileşenlerine göre 3-4 kat hızlandığını söyleyebilirim.Bir zaman firebird bir databasei 1 milyon kayıtta interbase, zeos,ado vede IBObjects bileşenleri ile test etmiştim.Rakamlarla yazamıycam çünkü sonuçları not etmedim ama IBObjects bileşenleri interbase bileşenlerinin 10-15 saniyede döndürdüğü sonucu 1-2 sn de döndürebiliyordu.
Birde onunla dene istersen...
arkadaslar gosterdiginiz ilgiden dolayı herkeze cok tesekkur ederim.
ben post işlemin den sonra hemen
ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.tex:= 'select * from data';
ibquery1.close;
seklinde datanın tümünü cagiriyordum. buda işlemi yavaslatıyormus.
ayrıca sizlerin de soyledigi gibi ibdataset`e ziyaden ibquery ve ibubdataesql işlemi ile yapmak gozle gorulur bi hiz sagliyor.
Her kayıttan sonra kapatıp açmak doğal olarak belli bir zaman alacaktır. Ayrıca sadece açmak fazla zaman almasa da açılan sorguda son kayıta ulaşmak veritabanından tüm kayıtları çekmek için çok daha fazla zamana ihtiyaç duyacaktır
diksaçlı prens kardeş senin bi kaydı update etme yöntemin yanlış.benim veri tabanımdaki tablolarımdan birinde 270 bin kaydım field sayım 57 ve vt ye bağlı 49 tane client var.benim clientlerden yaptığım insert update ve delete işlemlerim 2-3 sn sürüyor o da en yavaş client makinamda .sana tavsiyem insert update ve delete işlemlerini ibqueryler içine yazdığın sorgularla yap yada sp lerle yap.ben sp lerle yapıyorum şimdiye kadar bi yavaşlıkla karşılaşmadım.
meron06 yazdı:diksaçlı prens kardeş senin bi kaydı update etme yöntemin yanlış.benim veri tabanımdaki tablolarımdan birinde 270 bin kaydım field sayım 57 ve vt ye bağlı 49 tane client var.benim clientlerden yaptığım insert update ve delete işlemlerim 2-3 sn sürüyor o da en yavaş client makinamda .sana tavsiyem insert update ve delete işlemlerini ibqueryler içine yazdığın sorgularla yap yada sp lerle yap.ben sp lerle yapıyorum şimdiye kadar bi yavaşlıkla karşılaşmadım.
Her kullanıcı 270 bin kaydı karşısında toplu olarak görürken mi oluyor bu olay?