10.07.2015 Views

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

Akademik Bilişim '10 10 - 12 Şubat 2010 Muğla

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Mekansal Veritabanlarında Hızlı SorgulamaArzu Kütükcü, Osman AbulŞekil 2. Mekansal veri altyapısı mimarisiAşama 4: Sorgu Performanslarının Analizi veYorumlanmasıBu çalışma ile, oracle tarafından mekansal verileriçin sunulan R-tree ve Q-tree indekslememekanizmaları denenerek aralarındaki farklar,avantaj ve dezavantajları kullanılan verilerüzerinde değerlendirilmiştir.3. Uygulama3.1 Verilerin Veritabanına AtılmasıBu çalışma kapsamında mekansal verilerin depolanması,sorgulanması ve çeşitli analizlerinyapılması maksadıyla Oracle veritabanı seçilmişve <strong>10</strong>g Release 2 (<strong>10</strong>.2) versiyonu kullanılmıştır.Kullanılan coğrafi veriler “ESRI Shapefile”formatında temin edilmiştir. Söz konusu veriler“Oracle SDO_GEOMETRY” formatına“shp2sdo” programı kullanılarak çevirilmiştir.Daha sonra söz konusu veriler “SQL Loader”programı vasıtasıyla Oracle RDBMS ortamınaaktarılmıştır. Söz konusu coğrafi veriler OrcaleRDBMS ortamında “Oracle Spatial” bileşenisayesinde depolanmaktadır.166Veritabanına atılan bu verilerin uygulama üzerindenaltlık olarak kullanılması amacıyla “MekansalSunucu” olarak java tabanlı açık kaynakkodlu “Geoserver” programı kullanılmıştır. Sözkonusu program, “Mekansal Veritabanı Sunucusu”olarak kullanılan “Oracle Spatial”dan verilerielde etmekte ve alınan verilerin “OpenGISConsorsium-OGC” tarafından standartları tespitedilmiş olan WMS, WFS, WCS ve benzeri“Web Servisleri”ne dönüştürülmesinde kullanılmaktadır.Bu çalışmada, “Oracle Spatial”dasaklanan geometriler “Geoserver” üzerindenWMS Servisine çevrilmekte ve geliştirilenASP.NET uygulamasında da söz konusu servisaltlık olarak kullanılmaktadır.Son kullanıcı tarafından kullanılacak uygulama;Microsoft .Net Framework, C#, ASP.NET, Google API ve OpenLayers API gibiteknolojiler kullanılarak hazırlanmıştır. Geliştirilensunum katmanında, PL/SQL prosedürleriyardımı ile XML ve KML formatlarına dönüştürülenmekansal veriler javascript kodlarıve “OpenLayers API” kullanılarak uygulamaüzerinden yayımlanmıştır. Çalışma kapsamındatasarlanan bazı sayfalar ve işlevleri aşağıdaaçıklanmıştır.Havzalar İçinde Kalan Agi’ler ve NehirlerinBulunması : “Havza sınırları içinde kalanAgi’lerin tesbiti” ve “Havza sınırları içerisindekalan Nehirler”in tespit edilmesi amacıylatasarlanan bu sayfalarda veritabanı tarafındaSDO_INSIDE spatial operatörü kullanılarakçalıştırılan PL/SQL prosedürleri sonucu üretilenXML/KML dosyaları yayımlanmaktadır.Göl içinde kalan Agi’ler ve Havzalar İçindeKalan Göller : “Göller içerisinde kalan AkımGözlem İstasyonlarının bulunması” ve “Havzalariçerisinde kalan göllerin tespiti” amacıylabu çalışma kapsamında hazırlanan uygulamaiçerisinde bu sayfa tasarlanmıştır.İller içinde kalan Agi’ler ve Havzalar İçindeKalan İller : “Seçilen İl ya da İllerin gösterilmesi”,“Seçilen İl ya da İller içinde kalan Agi’lerintespiti”, “Havza İçinde kalan İllerin gösterilmesi”amacıyla bu sorgu sayfası tasarlanmıştır.Barajlar içinde kalan Agi’ler ve Havzalarİçinde Kalan Barajlar : “Barajlar içerisindekalan Akım Gözlem İstasyonlarının bulunması”ve “Havzalar içerisinde kalan barajların tespiti”amacıyla bu sayfa tasarlanmıştır.3.2. Sorguların Performans AnalizleriVeritabanında saklanan coğrafi veriler üzerindefarklı indeksleme mekanizmaları ve tuningaraçları kullanılarak çeşitli performans testleriyapılmıştır.Veritabanı performans değerlendirmesi yapılırkentasarlanan sorgularda SDO_WITHIN_DISTANCE, SDO_NN, SDO_RELATE gibiyaygın olarak kullanılan operatörler ile testleryapılmıştır. Mekansal veriler üzerinde, bu operatörlerile seçilen indeks türüne göre alınanperformans değerleri alındığı explain plan, awrraporları, Oracle Enterprise Manager gibi yardımcıaraçlarla gözlemlenmiştir.Değerlendirme yapılırken operatör ve indeksseçimi ile performansın değerlendirilmesi esasalınmıştır. Bu kapsamda değerlendirilen bazıSQL cümleleri ve değerlendirme sonuçları aşağıdaverilmiştir.Kullanılan Operatör ve parametre seçiminegöre performans değerlendirmesi:1. Bu bağlamda değerlendirme yapılırken ilkolarak, seçilen geometriye belirli bir mesafeuzaklıkta bulunan geometrilerin tespit edilmesiamacıyla yaygın olarak kullanılan SDO_WIT-HIN_DISTANCE operatörü kullanılmıştır.Uygulamaya entegre edilmek üzere en etkinSQL cümlesinin bulunması amacıyla çalıştırılan2 sorgu Çizelge 1’de görülmektedir. ÇoruhNehri’ne <strong>10</strong>0 km. uzaklıkta bulunan illerintespiti amacıyla çalıştırılan bu sorgulardan ilkioracle’ın mekansal indekse göre değerlendirmeyaptığı birincil filtre kullanılarak, ikincisorgu ise ikincil filtre kullanılacak şekilde tasarlanmıştır.Bu iki sorgu performans açısındandeğerlendirildiğinde çıkan sonuç Şekil- 3’degörülmektedir.<strong>Akademik</strong> Bilişim’<strong>10</strong> - XII. <strong>Akademik</strong> Bilişim Konferansı Bildirileri<strong>10</strong> - <strong>12</strong> Şubat 20<strong>10</strong> Muğla Üniversitesi167SorguNo1.2.Test edilen SQL cümlesiSELECT distinct(C.objectid)FROM akarsu R, iller C WHERER.Akarsu_ad=’Çoruh N.’ ANDSDO_WITHIN_DISTANCE(C.geom,R.geom, ‘querytype=FILTERDISTANCE=<strong>10</strong>0 UNIT=KM’)=’TRUE’;SELECT distinct(C.objectid)FROM nehirler R,iller CWHERE R.Akarsu_ad=’Çoruh N.’AND SDO_WITHIN_DISTANCE(C.geom, R.geom, ‘DISTANCE=<strong>10</strong>0UNIT=KM’)=’TRUE’ ;Çizelge-1 SDO_WITHIN_DISTANCEOperatörünün “Filter” parametresi ile kullanımıŞekil 3. SDO_WITHIN_DISTANCEOperatörü kullanılarak çalıştırılan SQLperformans sonuçları grafiğiŞekil 3’e göre; sorgu değerlendirilirken birincilfiltre yani mekansal indekslerin kullanıldığıbirinci sorgu daha hızlı çalışmaktadır. Bu sorgutürü hızlı sonuç üretse de yaklaşık sonuçüretmesi sebebi ile kullanımı her zaman tercihedilmemektedir. Onun yerine direkt geometrilerüzerinde işlem yapan ikinci sorgu tercihedilmektedir.2. Tablolarda bulunan tüm geometriler içinbelirli bir mesafe içinde kalan geometrilerintespiti amacıyla SDO_JOIN operatörü kullanılmıştır.Sorgu full table scan gerektiriyorsa,SDO_JOIN kullanımının SDO_WITHIN_DIS-TANCE operatörüne göre daha uygun olduğu,yapılan analizler sonucunda görülmüştür. Bu

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!