Çok kayıtlı veritabanları (özellikle bağlı tablolu veritabanı) için yaptığım araştırmalarda sorgu ya da Sql metni içerisinde kullanımda;
DLookup, Dsum , DCount vs fonksiyonlarının yavaş çalışabileceği yorumları ile karşılaştım.
Bu fonksiyonların yerine sunulan çözümler örneğin;
DCount yerine;
Public Function MyDCount(Expr As String, Domain As String, _
Optional Criteria = Null) As Integer
Dim rs As DAO.Recordset
Dim strSQL As String
MyDCount = 0
strSQL _
= " SELECT Count(" & Expr & ")" _
& " FROM " & Domain _
& " WHERE " + Criteria
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
With rs
MyDCount = .Fields(0)
End With
rs.Close
Set rs = Nothing
End Function
gibi bir çözüme ulaştım.
Öğrenmek istediklerim Access 2016-2019 sürümü için;
1. Sorgu ya da Sql metni içinde Dlookup vs kullanımı gerçekten performans kaybı mı
2. Özellikle Count ya da DCount sayma işleminde hızlı sayım için tüm kayıtlar mı Count (*) kullanılmalı, alan adı mı Count([FieldName]) kullanlmalı ( bazı yorumlarda Count(*) daha hızlı olduğu belirtilirken bazı yorumlarda Count([...]) daha hızlı olduğu belirtilmiş)
Hızlı kullanım için sizin öneriniz nedir?
Adı Soyadı:
mu.... öz....
Yaşı:
49
Konum:
Kocaeli
Ofis Versiyonu:
Ofis 2019 64 Bit
Son Oturumu:
05/12/2024,10:57
Yorumları:
173
Konuları:
45
Kayıt Tarihi:
26/12/2009
Teşekkür Puanı:
49
Mesleğiniz:
Elektrik Mühendisi
Cevapla