Hanaliner Ağustos 2014 - Sayı 02 Sayı 02 | Page 10

Kolon Bazlı Tablo ( Column Based Table ) çalışma mantığı ve avantajı : Şöyle, sayısal değerler de içeren bir tablomuz olsun : Ürün Kodu Satış Tutarı 100 10,00 101 15,00 105 20,00 108 11,00 109 12,00 Ve bu tablodaki “Satış Tutarı” kolonundaki değerlerin toplamını gerektiren şöyle bir SQL sorgusu gelsin : SELECT SUM ( tutar ) INTO gv_toplam_tutar FROM musteri_satis WHERE ... Bu durumda yukarıdaki gibi depocumuzu (veri tabanı işlemcisini) hayal edersek, 1 numaralı kaydın buluduğu rafı bulur, buradaki Satış Tutarı alanını okur, sonraki rafı bulur, 2 numaralı kaydın buluduğu raf numarasına sıçrar ve Satış Tutarı alanını okuyup toplama ekler, 3 numaralı kaydın buluduğu raf numarasına sıçrar ve Satış Tutarı alanını okuyup toplama ekler .. Yani toplam değeri elde edebilmek için, tablonun tüm satırlarını tek tek dolaşır ve alanlarından sadece birini okuyup toplam değere ekler. Dolayısıyla adresler arasında dolaşırken çok zaman kayberder ve yavaş sonuç verir. Ancak depocumuz, bu tablodaki Satış Tutarı alanı değerlerini bir şekilde birbirinin ardı ardına yer alan raflarda (adreslerde) bulsaydı, yani satırlar ve adresler arasında sıçramalar yapmak ile zaman kaybetmeseydi , çok daha hızlı bir şekilde toplam değerini bulacaktı. Kolon bazlı tablonun yaptığı aslında budur, Yani veritabanını yine raflar halinde ( adres-adres ) hayal edecek olursak : “Tutar” kolonu için veri tabanı segmenti : Değer : 10,00 15,00 20,00 11,00 12,00 Raf Numarası : 650 652 653 651 654 Ürün Kodu” kolonu için veri tabanı segmenti : Değer : 100 101 105 108 109 Raf Numarası : 13352 13353 13354 13355 13356