yavaşlayan table

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

yavaşlayan table

Mesaj gönderen mkysoft »

accsess veri tabanından programına veri aktarıyorum. kayıt sayısı 200'ü geçince acayip yavaşlıyor. sanırım her yeni kayıt aktardığımda tüm kayıtları veri tabanından yeniden okuyor. çözümü sanırım her veriyi sql update olarak eklemek olabilir, ama bir sürü sutün var yazmak zaman alacaktır. başka öneri olan varmı diye merak ettim. teşekkürler.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Bkz : Firebird.

M$ Access küçük çaplı işler için uygun olabilir ama ben hiç kullanılmamasından yanayım. Yine de ipuçlarında ve arama kısmından aratarak veritabanı programlarını nasıl hızlandıracağınıza dair pek çok öneri bulabilirsiniz. İlk aklıma gelen index mesela.

Kolay gelsin.
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Access de bildiğim kadarı ile index diye bir şey yok....Daha icat etmemişler.Ancak Access de öyle 200 kayıda kurban olacak bir veri tabanı değil.Ben bir keresinde her biri bir A4 ü dolduran 3 field i 48500 kere insert etmiştim access e.Hala çalışıyordu.
Kullanıcı avatarı
safak
Şafak EBESEK
Mesajlar: 165
Kayıt: 05 Ağu 2003 04:39
Konum: Istanbul
İletişim:

Mesaj gönderen safak »

Access den sadece ara sıra veri mi alıyorsunuz?
Yoksa porgram veri tabanı olarak Access mi kullanıyor.
200 satır (eğer blob ya da çok büyük alanlar yoksa) kolayca çalışmalı.
Bir loop la 200 satır üzerinde dolaşmayı, bilgileri okumayı ve ilgili yere yazmayı deneyebilirsiniz. Eğer bir grid kullanıyorsanız ve gride bilgiler eklenirken yavaşlama oluyorsa SataSet.Disablecontrols faydalı oluyor.
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

@Ali Erdoğan:
Her ne kadar tavsiye edilmese de acces bir veri tabanaıdır ve yerel bi veri tabanından baklanan bi çok şeyi yapabilir. Hatta bazı riskler göze alınarak küçük programlar için ağda bile kullanılabilir. Benim ilk programımın veri tabanı acces ti ve hala ağda 5 makinada ve yaklaşık 50000 kayıt ile problemsiz ve yeterince hızlı olarak çalışıyor.
Acces te de diğer veri tabanlarında olduğu gibi create index ile istenilin alanlara istenilen sayıda ve özellikte index oluşturulabilir. Sadece uygun yapıyı tutturmak gerekiyor sanırım.


Ama bir daha kullanır mıyım? Hayır...

Artık FireBird var programlarımda...



Kolay gelisin...
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

cevaplarınız için teşekkürler

Mesaj gönderen mkysoft »

ben veri tabanı olarak mysql kullanıyorum. arada firebird de deniyorum. kendi programımı iki veri tabanındada aynı kayıtlar ve indexlerle denedim sorgulama işinde mysql daha hızlı. sorunum şöyle acssess de bulunan 250 civarında kaydı wile döngösü ile mysql tabloma atıyorum. sütun sayısı biraz fazla. kayıt sayısı ardıkça bariz şekilde yavaşlama olmaya başlıyor. sonrala doğru saniyede 1 kayıt gidiyor. cached updates'ide true yaptım pek faydası olmadı. sadece kaydı ekliyorum tabloya. appende ve post başka bişi yok yani. Daha öncede aktarım yaptim ama bu kadar yavaşladığını görmedim. sütun sayısı fazla olduğundan ve her field değerlerini := ile atadığımdan oluyor sanırım. en kısa zamanda sql insert ile yapacağım. tablomda index ve uniqlik var. tekrar teşekkürler.
Kullanıcı avatarı
safak
Şafak EBESEK
Mesajlar: 165
Kayıt: 05 Ağu 2003 04:39
Konum: Istanbul
İletişim:

Mesaj gönderen safak »

İki ayrı nokta olabilir. Birinci Access'in taranması, ikincisi MySQL insert işlemi. Her ikisi için ayrı yaklaşım olabilir. Önce MySQL 'e insert yapmadan Access üzerinizdeki geçisinizin hızını kontol edebilirsiniz. Eğer sorun burdaysa INSERT işleminin faydası olmayacaktır. Sonra Sadece MySql'e 200 adet satır girimeyi deneyebilirsiniz. Eğer sorun MySql de ise kullandığınız tablo tipine bağlı olarak varsa triggerler'i gözden geçirebilirsiniz. Ayrıca MySql de DELAYED INSERT yaklaşımını kullanabilirsiniz. Bir diğer yol da Access bilgilerini TXT dosyasına aktarmak ve MySql'in INSERT işlemini filedan yapmasını sağlamak. Bu çok hızlı bir yol. Eğer File transfer ve access hakkınız varsa. Şimdilik aklıma gelenler bunlar.
Kolay Gelsin.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

önerileriniz güzel ama sonuncusu işe yaramayacaktır çünkü çok kullanıcılı bir sistem. sadece veri tabanın kurulu olduğu makinada aktarım gerçekleştirilebilir.
Cevapla