10. ANLAMSAL/SEMANTIC SORGU OPTİMİZASYONU
10.4 ANLAMSAL OPTİMİZASYON UYGULAMASI
Uygulama programın Anlamsal/Semantic Optimizasyonla ilgili olan kısmı, daha önceden
öğrenilmiş olan kuralları kural tablosundan alır, bu kuralları daha önce Anlamsal/Semantic
optimizasyon kısmında anlatıldığı gibi maliyet tabanlı olarak mukayese eder, ve fonksiyondan
geçen bu kurallardan amacımıza uygun olanını alıp optimum sorguyu oluşturur. Daha sonra
da optimum sorguyu çalıştırır.
Şekil 10. 3 Anlamsal Optimizasyon Kuralları
Şekil 10. 3’de daha önceden öğrenilmiş olan kurallar bulunmaktadır. Burada ANT ile
gösterilen kısım Koşulun sol tarafındaki sütun ismini, ANT_TABLE ile gösterilen tablo
ismini, ANT_OPER ile gösterilen, koşul sol tarafının Operatörünü, ANT_VAL ile gösterilen
koşulun sol tarafının değerini, ANT_RECS_NUM ile gösterilen ise tabloda sol taraf koşulunu
sağlayan kayıt sayısını göstermektedir. Aynı şekilde ANT yerine CONS ile başlayanlar da
koşul sağ tarafını temsil etmektedir.
Şekil 10. 4 Sorgu Giriş Ekranı
Şekil 10. 4’de verilen ekrana sorgu koşulları ile girilir ve Semantic düğmesi tıklanır. Program
Kuralların bulunduğu tablo ile bağlantı sağlar ve ilgili koşulun bu kurallar içerisinde olup
olmadığını denetler. Var ise Şekil 10. 5 deki gibi koşulları ve/AND ile birleştirir ve alttaki
Metin Kutusu/TextBox a yazar. Program eğer girilen SQL koşulu ile ilgili bir kural
bulamazsa girilen SQL koşulunu aynen girildiği gibi Metin Kutusu/TextBox’a yazar.
Şekil 10. 5 Anlamsal Sorgu Optimizasyon Ekranı
Episode tablosu için kural tabanında bulunan sorguların orijinal hali ve Anlamsal
optimizasyonlu hali ve bunların zaman ölçümleri EK3’de verilmiştir. Bu ölçümlerden ilk 20
tanesi Çizelge 10. 1’de gösterilmiş olup tüm kurallarla ilgili zaman ölçümü grafiği Şekil 10.
6’ daki gibidir.
Çizelge 10.1 Anlamsal Optimizasyon
Orijinal Sorgu
zaman Semantic Optimizasyon
zaman
1
ADMISSIONS = 1000 0,296000 ADMISSIONS = 1000 AND ID =13497 0,203000
2
ADMISSIONS = 1018 0,312000 ADMISSIONS = 1018 AND ID =22528 0,171000
3
ADMISSIONS = 1022 0,312000 ADMISSIONS = 1022 AND ID =14886 0,156000
4
ADMISSIONS = 1031 0,296000 ADMISSIONS = 1031 AND ID =19084 0,140000
5
ADMISSIONS = 1048 0,296000 ADMISSIONS = 1048 AND ID =41000 0,221000
6
ADMISSIONS = 1050 0,281000 ADMISSIONS = 1050 AND ID =5919 0,171000
7
ADMISSIONS = 1052 0,281000 ADMISSIONS = 1052 AND ID =33944 0,171000
8
ADMISSIONS = 1059 0,296000 ADMISSIONS = 1059 AND ID =9686 0,171000
9
ADMISSIONS = 1061 0,296000 ADMISSIONS = 1061 AND ID =13881 0,218000
10
ADMISSIONS = 1064 0,343000 ADMISSIONS = 1064 AND ID =7742 0,203000
11
ADMISSIONS = 1070 0,281000 ADMISSIONS = 1070 AND ID =28532 0,156000
12
ADMISSIONS = 1074 0,296000 ADMISSIONS = 1074 AND ID =8088 0,140000
13
ADMISSIONS = 1084 0,296000 ADMISSIONS = 1084 AND ID =1434 0,187000
14
ADMISSIONS = 1090 0,312000 ADMISSIONS = 1090 AND ID =590
0,171000
15
ADMISSIONS = 1094 0,296000 ADMISSIONS = 1094 AND ID =13623 0,187000
16
ADMISSIONS = 1099 0,296000 ADMISSIONS = 1099 AND ID =12433 0,187000
17
ADMISSIONS = 11076 0,312000 ADMISSIONS = 11076 AND ID =3561 0,171000
18
ADMISSIONS = 1109 0,312000 ADMISSIONS = 1109 AND ID =4194 0,156000
19
ADMISSIONS = 1115 0,312000 ADMISSIONS = 1115 AND ID =28784 0,201000
20
ADMISSIONS = 1116 0,296000 ADMISSIONS = 1116 AND ID =35183 0,187000
Şekil 10. 6 Anlamsal Sorgu Optimizasyon
Şekil 10. 6’da görüldüğü gibi orjinal sorgu ile Anlamsal Sorgu Optimizasyon tekniği ile
optimize edilmiş sorgu arasında büyük zaman farklılıkları bulunmaktadır. Bu sorgular 3.
durum içinde olanlardır, yani 1. durumun (‘Sorgunun Kuralla Reddedilmesi’) ve 2. durumun
(‘Sorgunun Sonucunun Kuraldan Bulunması’) dışında kalanlardır. 1. ve 2. durumda %99’a
yakın performans artışı vardır ve bu artış daha önceki araştırmalar tarafından gösterilmiştir.
11. GENEL SONUÇLAR
Bu kısımda tezde yer alan 3 optimizasyon tekniğinin 94 tane ortak sorgu üzerinde
karşılaştırılması yapılmıştır. Bu karşılaştırma sorgularından bazılarını ve sorgularının
optimize edilmiş ve çalıştırılmış haldeki zaman ölçümleri EK 4’de bulunmaktadır.
Çizelge 11. 1’de ise ilk 10 tanesi yer almakta olup, tüm değerlerle ilgili grafik Şekil 11.1’ de
gösterilmiştir.
Çizelge 11.1 Optimizasyon Teknikleri Karşılaştırması
ORJINAL SORGU
Maliyet Tabanlı
Opt. Anlamsal Opt.
Buluşsal Tabanlı
Opt.
1
SELECT MALE FROM CODE,EPISODE2,HASTA WHERE ID=did AND EC=ECODE AND WAITING_LIST=6086 AND HastaNo=22
0,265000 0,234000 0,239000 2
SELECT DAY_CASE FROM CODE,EPISODE2,HASTA WHERE EC=ECODE AND HastaNo=22 AND MEDIAN_WAITING=251 AND ID=did
0,234000 0,195000 0,281000 3
SELECT WAITING_LIST FROM CODE,EPISODE2,HASTA WHERE ID=did AND EMERGENCY=11058 AND EC=ECODE AND EPISODES>1138
0,468000 0,287000 0,491000 4
SELECT MALE FROM CODE,EPISODE2,HASTA WHERE EC=ECODE AND
AGE_0_14=324 AND ID=did AND Aciklama='jukouyo707' 0,312000 0,218000 0,304000 5
SELECT WAITING_LIST FROM CODE,EPISODE2,HASTA WHERE ID=did AND WAITING_LIST=6086 AND HastaNo>22 AND EC=ECODE
0,431000 0,281000 0,423000 6
SELECT MALE FROM CODE,EPISODE2,HASTA WHERE Aciklama='jukouyo707' AND EC=ECODE AND ID=did AND MEDIAN_WAITING=251
0,312000 0,218000 0,318000 7
SELECT WAITING_LIST FROM CODE,EPISODE2,HASTA WHERE MALE> 1230
AND EC=ECODE AND HastaNo>22 AND ID=did 0,325000 0,204000 0,331000 8
SELECT DAY_CASE FROM CODE,EPISODE2,HASTA WHERE MEDIAN_LENGTH=100 AND EC=ECODE AND ID=did AND
Aciklama='jukouyo707' 0,296000 0,203000 0,248000
9
SELECT WAITING_LIST FROM CODE,EPISODE2,HASTA WHERE ID=did AND EPISODES=4305 AND EC=ECODE AND ECODE='I72.1'
0,265000 0,234000 0,278000 10
SELECT STARTYEAR FROM CODE,EPISODE2,HASTA WHERE HastaNo=22 AND AGE_75= 1488 AND EC=ECODE AND ID=did