Sum, Avg, Min gibi işlemci gücü gerektiren sorgulamalar yaparken yavaşlık kayıt sayısının çokluğuna göre artar.
Bu Toplam olarak kullanmak istediğin alanlar için, ana tablo üzerinde alanlar açıp; tabloyu böyle sorgulamadan önce update query ileri ile açacağın alanları güncelledikten sonra, ana tabloya select atman işini hızlandırır.
Birde bu sum değerlerini sürekli hesaplatman gerekli mi onu düşünmek gerekli ?
Anlaşılan MSSQL ile yapılmış DB.
Bir algoritma anlatayım. MSSQL için geçerlidir.
Binarychecksum() bit seviyesinde her rowu hesaplayan bir komuttur. MSSQL içinde buildin olarak gelir.
1 - Select Binarychecksum(*) q from abc < bu sorgu sana tüm kolonlar birleştirmişsin gibi her row için bir integer sayı döndürür.
2 - Select sum( Binarychecksum(*) / 1000) q from abc bu şekilde kullandığında, sana bir sayı verecektir.
Şimdi burada çıkan sayıyı bir tabloya yaz. Sonra tablonun herhangi bir rowundan herhangi bir kolonu güncelle ve 2 numaralı sorguyu tekrar çalıştır. İlk sayıdan farklı ise tablo üzerinde bişiler değişmiş demektir.
Eğer ilk sayı ile aynı ise, tabloa da bi değişiklik olmamıştır. Tabloda değişiklik olmadığı sürece, sum, avg yani calculation field updatelerini tekrar tekrar yapmam anlamsızdır.
ilk sayı ile 2 sayı farklı ise, update sorgusu ile toplamları güncelle, eğer aynı ise sadece ana sayfaya select at gitsin.