8. MALİYET TABANLI /COST BASED SORGU OPTİMİZASYONU
8.2 MALİYET TAHMİNİ/COST ESTIMATION
Bir yapısal sorgu dili cümlesinin, mantıksal eşdeğerlik gösteren bir çok cebirsel ifadesi elde
edilebilir ve her bir cebirsel ifadenin ise değişik operatörleri kullanılarak yada sıralaması
değiştirilerek bir çok erişim yöntemi türetilebilir. Erişim yöntemleri kullandıkları kaynak
miktarı açısından bir birinden oldukça farklılık göstermektedir.
8.2.1 Veri Erişim Maliyet Fonksiyonları/Cost Functions
Veri tabanında depolanmakta olan veriye erişim için gerekli olan sistem kaynaklarından
maliyete esas en büyük bileşen disk erişim maliyetidir. S
1….S
8arasında tanımlanacak olan
fonksiyonlar arasında tanımlanacak olan fonksiyonlar farklı seçme yöntemlerini, S
iyöntemine
ait maliyeti ise C
iile ifade edilmektedir.
Maliyetlerin belirlenmesinde çeşitli değişkenler kullanılmaktadır. Bunlar aşağıda
tanımlanmıştır:
B = Blok büyüklüğü
R = Kayıt uzunluğu
r = Toplam kayıt sayısı
bfr (bloklama faktörü/blocking factor) = Bir bloğa yerleştirilebilecek kayıt sayısı:
b = Dosyanın yerleştirilebileceği toplam blok sayısı:
s = Seçme üstünlük faktörü; herhangi bir niteliğin farklı bir değerinin toplam kayıt sayısında
kaç sefer seçilebileceğidir. d, niteliğin farklı değerlerinin adedini göstermek üzere,
s = r / d olarak hesaplanabilir.
Bu tanımlanan değişkenler kullanılarak, arama metodlarının maliyetlerinin ne olacağı ile ilgili
fonksiyonlar aşağıda verilmiştir.
S
1: Doğrusal Arama(Linear Search) Yaklaşımı: Koşulda belirtilen ilgili kayda erişilene
kadar tüm ilişki kayıtlarının sırasıyla kullanılan tüm diskten okunması yöntemidir. Maliyet
fonksiyonu ise C
S1a= b şeklinde olacaktır.
erişilebileceği kabul edilmekte dolayısı ile maliyet fonksiyonu tahmini olarak aşağıdaki
gibidir.
C
S1b= (b/2)
S
2: İkiye Bölerek Arama/Binary Search: Bu erişim yöntemi ile sorgu koşulundaki nitelik,
ana anahtar/primary yada tekil/unique ve kayıtlar disk üzerinde sıralı ise maliyet fonksiyonu
Kayıtların diskte sıralı olması gerekmektedir. Koşul anahtar yada tekil özelliğin eşitlik
koşuluna dayanıyorsa maliyet fonksiyonu:
C
S2= log
2b
olacaktır. Çünkü anahtar nitelik için s = 1 olacaktır.
S
3: Birincil indeks ve eşitlik koşulu için(tek kayda erişim) maliyet fonksiyonu
C
s3a= x + 1 dir.
Buradaki x ise birincil indeksin seviyesini belirtir.
S
4: Sıralı indeks ile birden fazla kayda erişim: Koşul <,<=,>,>=,=! şeklinde karşılaştırma
operatörü olduğu ve anahtar alanın/key field veri tabanında sıralı olduğu durumlarda
kayıtların yarısının koşulu sağladığı kabul edilir, ve maliyet fonksiyonu aşağıdaki gibidir.
C
S4= x + b/2
S
5: Birden fazla kayda, kümelendirilmiş indeks ile erişim durumunda maliyet fonksiyonu
S
6: İkincil/Secondary indeks kullanarak erişim:
Eşitlik koşullarında ve indeks kümeli değilse her bir kayıt, diskin farklı bölümlerinde
olabileceğinden maliyet fonksiyonu aşağıdaki şekildedir;
C
S6a= x + s
karşılaştırma koşullarında <,<=,>,>=,=! kayıtların ortalama yarısının koşulu sağladığı kabul
edilir ve kaba bir maliyet tahmini ile
C
s6b= x + b
11/2 + r/2 şekline dönüşür.
S
7: Bileşik seçme işlemleri: Buraya kadar yapısal sorgu dili cümlesinin WHERE bloğunda tek
koşul olduğu durumlardaki maliyet fonksiyonlarını incelendi. Birden fazla koşul olması
durumunda, koşulun eşitlik yada karşılaştırma çeşidine bağlı olarak yukarıdaki tek koşullu
fonksiyonlar gibi işleme alınır ve en az maliyetli koşulla diskten ilgili kayıt yada kayıtlar
okunduktan sonra diğer koşullar ana bellekte disk erişimi yapılmadan önceki koşulun
sonucuna uygulanır.
Örnek : Veri tabanında bulunan Calisanlar tablosuna ait katalog bilgileri,
r
E(toplam kayıt sayısı ) = 10 000
b
E(blok sayısı) = 2 000
bfr
E(blok faktörü) = 5 olarak verilsin ve aşağıdaki indeks yapıları tablonun kayıtlarında
geçerli kılınmıştır:
1- Maas alanı üzerinde kümelenmiş indeks bulunmakta ve indeks seviyesi X
Maas= 3, koşulun
kardinalitesi S
Maas= 20 dir.
2- Kimlik_No anahtar alanı üzerinde ikincil indeks bulunmakta ve X
Kimlik_No=4, S
Kimlik_No=1
3- DNO alanı anahtar niteliği taşımakta ve üzerinde İkincil indeks bulunmaktadır.
X
DNO= 2 ve birinci seviyedeki indeks blok sayısı = 4, ve farklı DNO ya sahip kayıt
miktarı d
DNO= 125 (distinct values) ve DNO alanının eşitlik üstünlüğü
S
DNO= (r
E/ d
DNO) = 80’dir.
4- Cinsiyet alanı üzerinde İkincil indeks bulunmakta ve X
Cinsiyet= 1, d
Cinsiyet= 2 dir dolayısı ile
eşitlik üstünlüğü S
Cinsiyet= (r
E/ d
Cinsiyet) = 5 000 dir.
Bu verilen bilgilere göre aşağıdaki sorgular örnek olarak verilebilir.
Örnek (Q1) σσσσ
Kimlik_No=123456789(Calisanlar) şeklindeki bir sorgu için
S
1deki doğrusal arama maliyeti C
S1b= (b
E/2) = 1000 blok girişi
Bu, anahtar olmayan bir alan üzerinde ortalama maliyettir.
Q1 sorgusu için S
6ayöntemi kullanılarak maliyet tahmini yapılırsa
C
S6a= X
Kimlik_No+ 1 = 4 + 1 = 5 disk blok girişi
Örnek (Q2) σσσσ
DNO>5(Calisanlar) şeklindeki bir sorgu için
S
1ayöntemi ile maliyet fonksiyonu hesaplandığında;
C
S1a= 2000 blok girişi yapılır.
S
6byöntemi ile maliyet fonksiyonu hesaplanırsa
C
S6b= X
DNO+ (b
1DNO/ 2) + (r
C/ 2) = 2 + (4/2) + (10000/2) = 5004 blok girişi
Böylece Q2 sorgusu için doğrusal arama yöntemi olan S
1anın seçilmesi daha az maliyete
neden olacaktır. Başka bir deyişle daha az sayıda bloğa giriş yapılacaktır.
Örnek (Q3) σσσσ
DNO=5(Calisanlar) şeklinde bir sorgu için S1a yönteminin kullanılması
durumunda C
s1a= 2000 bloğa giriş veya S
6ayönteminin kullanılması durumunda,
C
S6a= X
DNO+ S
DNO= 2 + 80 = 82 blok girişi yapılacaktır. Dolayısı ile daha az maliyetli olan
S
6ayöntemi seçilir.
Örnek (Q4) σσσσ
DNO=5 AND Maas > 30000 AND Cinsiyet = K(Calisanlar) şeklinde bir bileşik koşullu
sorgu için optimizasyon yapılırsa:
Bu tür birden fazla koşul içeren bileşik koşullu sorgulardan izlenecek yöntem, yukarıdaki
S1…S6 arasında tanımlanan tek koşullu erişim yöntemlerinden maliyeti en az olan ile erişim
yapılıp koşulu sağlayan kayıtların ana belleğe okunması ve diğer koşulların testini bellek
üzerinde var olan seçilen koşulun sonucu üzerinden yapılmasıdır. DNO = 5 koşulunu temel
alırsak, S6a yöntemi ile maliyet C
S6a= X
DNO+ S
DNO= 2 + 80 = 82 blok girişidir.
(Maas>30000) koşulu temel alınır ve uygun olan erişim yöntemi S4 ile erişim yapıldığında
maliyet C
S4= X
Maas+ b
C/ 2 = 3 + (2000/2) = 1003 blok girişidir.
Cinsiyet = K) koşulu temel koşul alınırsa uygun erişim yöntemi S
6akullanıldığı durumda C
S6a= X
Cinsiyet+ S
Cinsiyet= 1 +5000 = 5001 blok girişidir. Üç koşul içersinden maliyeti en az olan
koşul ( DNO = 50) dir. Ve S
6aerişim yöntemi ile maliyeti 82 dir. Optimizatör kayıtlara (DNO
= 5) koşul testi ile ilgili kayıtlara 82 bloğa erişecek ve elde edilen her bir kaydın (Maas >
30000 AND Cinsiyet = K) koşullarına uygunluğu ana bellekte yapılacak ve bu işlemler için
ilave disk blok girişi yapılmasına gerek kalmayacaktır.
Belgede
Tanker kazaları sonrası İstanbul Boğazı'ndaki yakıt kirliliği simülasyonu
(sayfa 72-77)