AccessTr.neT
Programın yavaş çalışmasının sebebi - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Programın yavaş çalışmasının sebebi (/konu-programin-yavas-calismasinin-sebebi.html)



Programın yavaş çalışmasının sebebi - estapan - 22/11/2013

Değerli arkadaşlar,

Ticari bir program yaptım. pgogramın bazı bölümlerine girince çok fazla bekletiyor. Tablolarda alan sayısını çok fazla tuttum. Örneğin fatura tablosundaki alan sayısı 40 ın üzerinde. sebebi bu olabilirmi. diğer tablolardada alan sayıları çok fazla ve bu alanlar çoğu zaman boş kalıyor. Acaba tabloları bölsem örneğin Fatura tablosunu Fatura1, Fatura2, fatura3 şeklinde. programı hızlandırabilirmiyim.
Henüz toplam veri 21 Mb. geçmedi bukadar veri accessi yavaşlatacağını düşünmüyorum. Bilgisi olan arkadaşlardan yardım bekliyorum.


Cvp: Programın yavaş çalışmasının sebebi - C*e*l*o*y*c*e - 22/11/2013

Merhaba
örneğinin içinde sadece tablo var diğre sorgu ve formun yok,bu hali ile sadece şunu söyleyeyim,sorgular çok önemli ,sorgular yanlış yapılırsa programın çalışmasını yavaşlatıyor,sorguları,tersten kulak gösterir gibi uzatmadan,kısa ve öz kodlarla yapmak çok farkediyor,bu benim edindiğim tecrübelerden biri,tablo bölmesine gelince ,ayrı bişey o ,bölsekte olur bölmesekte ,ama hızı etkilerse de bölme işlemi dahada yavaşlatır diye düşünüyorum


Cvp: Programın yavaş çalışmasının sebebi - alpeki99 - 22/11/2013

1) Program kullanım halinde iken MDB değil MDE formatında olmalı

2) Tablolarınız için normalizasyon işlemi yapmalısınız. En önemli konulardan birisidir.
Sitede arama yaptıracak olursanız fikir alırsınız.

3) Tablonuzdaki alanların boyutları ve türlerini en uygun olacak şekilde yapmalısınız.
Mesela Fatura tablonuzda FaturaTipi diye bir alan var. Sayı türündeki bu alanı Tamsayı olarak tanımlamışsınız. Hem diskte daha fazla yer kaplar hem performans için uygun değil. Kaç tane fatura tipiniz olabilir ki? Daha küçük sayı türü kullanın.

4) Formlarınızda gereksiz bileşenler kullanmayın.
Form üzerinde saat, kayan yazı vb. şeyler kullanmayın.

5) Programınızı BE ve FE olacak şekilde bölün.

6) Ağ ortamında çalışan programlarınızda ADO kullanırsanız iyi olur. Ayrıca kaydetme vb. işlemlerden önce bağlantı durumunu kontrol edin.

7) Veritabanı olarak Access kullanmayın. Bilgilerin güvenliği, performans, veri bütünlüğü sizin için önemli ise MySql veya MsSql kullanın.

8) Vba kodlarında Variant türünde değişken tanımlamayın. Dolayısıyla Option Explicit kullanın.

9) Form üzerinde ikon haricinde resim kullanmayın

10) Program yazım aşamasında bol bol derleme (Compile) işlemi yapın.

11) Düzenle ve Onar işlemi kodlarınızın ve formlarınızın düzgün çalışmasını sağlamaz. Sadece verilerin tekrar düzenli bir şekilde yerleştirilmesini sağlar. Düzgün çalışması için faydasızdır ancak verileri birleştirdiği için hız avantajı sağlar.

12) Her gördüğünüz modülü bir gün lazım olur diye programınıza eklemeyin. Neye gerçekten ihtiyacınız var ise onu kullanın.

13) Ölü deriyi temizleyin. Formdaki denetimlerde kodlar yazarsınız. Sonradan o denetimi sildiğinizde boşta kalan kod blokları olur. Yazılan prosedür ve fonksiyonlardan kullanılmayanları silin ya da yorum haline getirin.

14) Döngülerde maksimum değeri döngü öncesinde tanımlayın yoksa her döngü adımında hesap yapmak zorunda kalır.

15) Değişkenlerde, form, rapor, sorgu vb. hiç bir yerde Türkçe karakter ve boşluk kullanmayın.

16) Office ve Windows için son güncelleme paketi yüklü olsun.

17) Her tablonuzda Birincil Anahtar-Otomatik Sayı alan olsun.

18) Gerçekten ihtiyacınız olan kadar indeks olsun.

19) Tabloda OLE alanlarda resim vb. şeyler saklamayın.

ilk aklıma gelenler bunlar.


Cvp: Programın yavaş çalışmasının sebebi - estapan - 23/11/2013

Önce cevaplarınız için çok teşekkürler.
C*e*l*o*y*c*e hocamın dediği gibi programımda yüzlerce sorgu var ve bazıları inanılmaz karışık ve uzun (Kod kullanmak yerine her şeyi sorgularla yaptığım için).

2. Alpeki hocamın yazdıklarından.


2) Tablolarınız için normalizasyon işlemi yapmalısınız. (anlayamadım)
5) Programınızı BE ve FE olacak şekilde bölün. (anlayamadım)
7) Veritabanı olarak Access kullanmayın. Bilgilerin güvenliği, performans, veri bütünlüğü sizin için önemli ise MySql veya MsSql kullanın.(access le yapılan programda başka veri tabanı kullanmak nasıl yapılır bilmiyorum. Ama birçok başka programla yapılan programların veri tabanı olarak Access i kullandığını gördüm)

diğer yazdığı hataların çoğunu da sanırım yaptım. (Türkçe karekter - alan adlarında boşluk. Formlarda silinen denetimlerin boşta kalan kodları. Gereksiz uzun alan boyutları)

sanırım sorun bir sebepten değil birçok sebepten kaynaklanıyor.

iki hocama da çok teşekkür ederim özellikle alpeki hocamın uzun ve açıklamalı cevabı için ayrıca teşekkür ederim


Cvp: Programın yavaş çalışmasının sebebi - alpeki99 - 23/11/2013

Normalizasyon için şu yazıları inceleyebilirsiniz:

Kod:
http://www.ismailgursoy.com.tr/normalizasyon-nedir/
http://www.zskblog.com/detay.aspx?id=21
http://mertkanelpeze.com/2011/05/26/sql-server-normalizasyon-kurallari/

Aslında BE ve FE üzerine fare ile gelince açıklama çıkıyor ancak kabaca ifade edersek veritabanınızı bölmeniz gerek.

Access iş yapar yapmaz değil ancak bu kadar çok tablo ve alan varsa MySql çok iyi olacaktır.


Cvp: Programın yavaş çalışmasının sebebi - hgsoftware - 26/11/2013

Birde tablolarınızı .dbf formatına dönüştürüp al komutu yerine bağlantı koymanız halinde programınız biraz daha hızlanacaktır.

.dbf konusunda sadece şuna diyebilirim (tablolarınız Excel görünümünde olacaktır)

tablolarınızın başlığını 10 karakterden fazla yazmayınız ve benzerlik taşımasın...

kolay gelsin