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