22/03/2021, 01:41
Ç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?
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?