• Sonuç bulunamadı

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

8

arasında tanımlanacak olan

fonksiyonlar arasında tanımlanacak olan fonksiyonlar farklı seçme yöntemlerini, S

i

yöntemine

ait maliyeti ise C

i

ile 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

2

b

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

1

deki 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

6a

yö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

1a

yöntemi ile maliyet fonksiyonu hesaplandığında;

C

S1a

= 2000 blok girişi yapılır.

S

6b

yö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

1a

nı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

6a

yö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

6a

yö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

6a

kullanı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

6a

eriş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.

Benzer Belgeler