yavaşlayan table
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
yavaşlayan table
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.
-
- Kıdemli Üye
- Mesajlar: 1026
- Kayıt: 11 Şub 2005 02:12
- Konum: İstanbul
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.
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.
@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...
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...
cevaplarınız için teşekkürler
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.
İ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.
Kolay Gelsin.