Mekansal Veritabanlarında Hızlı Sorgulama

Slides:



Advertisements
Benzer bir sunumlar
Hâsılat kavramları Firmaların kârı maksimize ettikleri varsayılır. Kâr toplam hâsılat ile toplam maliyet arasındaki farktır. Kârı analiz etmek için hâsılat.
Advertisements

Mastarlar.
BULUT BİLİŞİM M. KÜRŞAT YILDIRIM İÇERİK  BULUT BİLİŞİM NEDİR?  BULUT BİLİŞİM ÖZELLİKLERİ  BULUT BİLİŞİM MİMARİ YAPISI  BULUT BİLİŞİM.
Bir asistanın, asistanlık dönemimdeki bilgilerinin sistem üzerinden takibinin yapılmasını sağlamak.
EurobankTekfen SQL Server DBA Turgay Sahtiyan.
2 Yatırım Karlılık Analizleri Finansal Analizler Basit Yöntemler İndirgenmiş Yöntemler Karlılık Yöntemi Geri Ödeme Süresi Yöntemi Net Bugünkü Değer Yöntemi.
BÖLÜM 1 TEMEL KAVRAMLAR. BÖLÜM 1 TEMEL KAVRAMLAR.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Veri Toplama ve Değerlendirme Sistemi Tanıtım Toplantısı.
SUNUCU İŞLETİM SİSTEMİ Öğr. Gör. Ümit ATİLA.  1980’li yıllardan günümüze geldikçe, bilgi toplumuna yönelişte teknolojik rota, telekomünikasyon ve iletişim.
Grundtvig Öğrenme Ortaklığı “A Step Towards Elderly People (STEP)” “Yaşlılara Doğru Bir Adım Projesi” Dr. Halis YEŞİL Çıraklık ve Yaygın Eğitim Genel Müdürlüğü.
Performans ve Ücret Yönetimi Yrd. Doç. Dr. Özlem BALABAN
Raporlama Yapmanın Amaçları 2 -Yapılan çalışmaların sonuçlarını daha net görebilmek -Yapılan çalışmaları geçmiş zaman verileriyle kıyaslayabilmek -Rapor.
Çağrı Kuçat SQL Yapısı.
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
Bu slayt, ön lisans öğrencilerimize son sınıfta ya da mezun olduktan sonra başvuru yapabilecekleri sınavlar hakkında bilgi verme amaçlı hazırlanmıştır.
HARİCİ VERİ DEPOLAMA SİSTEMLERİ. HARİCİ VERİ DEPOLAMA NEDİR?  Harici Veri Depolama: Verilerimizi saklamak ve gelecekte kullanmak amacıyla kullanılan.
İnternet'e Bağlanmak İçin Neler Gereklidir?
Öğr. Gör. Dr. İnanç GÜNEY Adana MYO
ANKARA ÜNİVERSİTESİ SAĞLIK BİLİMLERİ FAKÜLTESİ SOSYAL HİZMET BÖLÜMÜ
AKDENİZ ÜNİVERSİTESİ KÖRCÜL TARİF
İç Kontrol Standartlarına Uyum Eylem Planı Toplantısı
Veri Tabanı Yönetimi Dersi 7. Laboratuvarı
TAM SAYILAR.
DERMATOLOJİ DİSİPLİNİNİN DÜNYA ÖLÇEĞİNDE YENİDEN GÖRSELLEŞTİRİLMESİ
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TAŞKINLARIN ÖTELENMESİ
ENGELLİ ÇOCUKLARI TANIMA VE DEĞERLENDİRME
Ziyafet ve İkram Hizmetleri
HAZIRLAYAN SEDA KALKANDELEN
BİLİŞİM SİSTEMLERİ GÜVENLİĞİ (2016)
İnternet ve WEB Tanımları Html Temel Etiketleri
Bilgi ve İletişim Teknolojileri
İŞ SAĞLIĞI VE GÜVENLİĞİ KARŞILAŞTIRMA ÖLÇÜTLERİ
AĞ DONANIMLARI BARIŞ BAYRAM :
STORAGE BÜŞRA KARADENİZ
İnsan Kaynakları ve Kalite Yönetimi
İK MAKALESİ.
Geniş Ölçekli Testler Yrd. Doç. Dr .Ömer Kutlu.
Yrd.doç.Dr. H. Deniz GüllerOĞlu
Bölüm 4: Tarımsal ürünlerin pazarlama fonksiyonları
MİKRODENETLEYİCİ KONTROLLÜ KOŞU BANDI
Oxford Dergılerını Tarama ve Tarama Seçeneklerini
Abdülkadir KOÇER, Afşin GÜNGÖR Akdeniz Üniversitesi
CİHANGİR MAHALLESİ YAPISAL RİSK ANALİZİ
SUNUM PLANI Neden Dinamik Bölüm Web Sitesi ? Sistemin Özellikleri Akademisyen Modülü Ders Modülü Öğrenci Modülü İçerik Modülü Takvim Modülü Duyuru Modülü.
DÖNEMİ FAALİYET RAPORU Sunucu: Yrd. Doç. Dr. Fevzi HANSU
Benzetim 11. Ders İmalat Yönetimde Benzetim.
İMÜ198 ÖLÇME BİLGİSİ İMÜ198 SURVEYING Bahar Dönemi
Kemal AKYOL, Şafak BAYIR, Baha ŞEN
Gurbet Güntürk Evsel BY423 Güz, 2015
Tezin Olası Bölümleri.
Oxford Dergılerını Tarama ve Tarama Seçeneklerini
VERİTABANI YÖNETİM SİSTEMLERİ 3-Normalizasyon
SQL Server - Views.
Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel
NİŞANTAŞI ÜNİVERSİTESİ
Sanal ve Şebeke Örgütleri
5.6 İKS Dokümantasyonu Her çiftçi için belli dokümanlar ve İKS seviyesinde tutulmalıdır. ( İKS Rehberi 5.6’da belirtildiği gibi) Bu kayıtlar hem iç hem.
Yasal Çerçeve Yapılan Çalışmalar Yapılması Gereken Çalışmalar
Bilgehan Arslan, Süreyya Gülnar
Enerji İletim Hatlarının Optimal Güzergah Seçiminde Coğrafi Bilgi Sistemlerinin (CBS) Kullanımı Nihat Pamuk.
Sınıf Öğretmenlerinin Eğitsel Amaçlı İnternet Kullanım Öz Yeterlikleri
SQL VIEW.
Bilimsel Araştırma Yöntemleri
Medİkal görüntülerde doktor – hasta bİlgİ gİzlİlİğİnİn sağlanmasI
Bellek içi raporlama sistemleri için denormalizasyon uygulaması
Sunum transkripti:

Mekansal Veritabanlarında Hızlı Sorgulama Arzu KÜTÜKCÜ Osman ABUL TOBB Ekonomi ve Teknoloji Üniversitesi

Giriş Çalışmanın Tanımı ve Amacı Coğrafi Veriler İçin Kullanılan Teknolojiler Oracle Spatial Teknoloji Çalışmada Kullanılan Veriler ve İzlenen Metodoloji Performans Değerlendirilmesinde Kullanılan Araçlar Veritabanı Performans Testleri Sonuçlar

Çalışmanın Tanımı ve Amacı Hazırlanan coğrafi veri katmanları (havza, akarsu, Agi, göl vb…) kullanılacak ara yazılımlar ile Oracle veritabanına aktarılarak, kullanıcı tarafından herhangi bir program yüklenilmesine gerek kalmadan internet tarayıcısı üzerinden çalışacak bir uygulama yazılımı hazırlanmıştır. Hazırlanan uygulama yazılımı ile, veritabanına aktarılan coğrafi veriler kullanılarak değişik coğrafi sorguların geliştirilmesine ve bu sorgular üzerinde çeşitli performans değerlendirilmesi yapılarak iyileştirme, optimizasyon çalışmalarının yapılması amaçlanmıştır.

Coğrafi Veriler İçin Kullanılan Teknolojiler Spatial Veritabanı Avantajları Dezavantajları ArcSDE Lider CBS sağlayıcı tarafından oluşturulmuş (ESRI) En iyi CBS işlevselliği Fiyatları (tüm sistem için fiyatı 60.000 ABD $’na kadar çıkabilmektedir.) Oracle Spatial Şirketlerin ihtiyaçları için yeterli Tam olarak aradığımız şey Önde gelen veritabanı sağlayıcısı Yeterli destek alınabilir Fiyatlar (tüm sistem için fiyatı 50.000 ABD $’na kadar çıkabilmektedir.) Microsoft SQL Server 2008 Spatial Vector veriler için gelişmiş özellikler Kolay Anlaşılır Geocoding Network Data Model Topology Network

Coğrafi Veriler İçin Kullanılan Teknolojiler IBM DB2 Spatial Extender Şirketlerin ihtiyaçları için yeterli Tam olarak aradığımız şey Önde gelen veritabanı sağlayıcısı Yeterli destek alınabilir ArcExplorer’la çalışır Fiyatları (free with $30,000 purchase of IBM DB2) ($20,000 < ArcSDE sistem $10,000 < Oracle sistem) ArcSDE ile karşılaştırıldığında kısıtlı CBS yetenekleri PostGIS Ücretsiz Kolaylıkla Download Edilebilir Ödenilen Kadar alınır Son derece küçük bir pazar Az bilgi sahibi kişiler Sınırlı Mali Destek Uzun ömürlü olması risk altında

Spatial Teknoloji Oracle Spatial, Spatial olarak da adlandırılan konumsal verilerin sorgulanması, güncellenmesi ve depolanmasına yardımcı olan SQL şema ve fonksiyonları içeren teknolojidir. Spatial teknoloji; 1. MDSYS Şeması, 2. Spatial index mekanizması, 3. Spatial analiz işlemleri için fonksiyonlar, prosedürler ve operatörler, 4. Tuning işlemleri için operatörler, 5. Topoloji veri modeli, 6. Network data model oluşturulması, 7. GeoRaster veriler üzerinde analizlerin yapılabilmesi, gibi özellikleri içerir.

R-tree Index Spatial Teknoloji R-tree indexler B-tree index yapısından türetilmiş, spatial veriler için yapılan performans testlerinde büyük oranda başarılı olmuş, en yaygın kullanılan algoritmadır. Spatial veriler için K-D-B ve Quad Tree algoritmalarının pek de verimli olmadığı gözlenmiş, K-D-B Tree algoritmasının daha çok Point veriler için daha uygun olduğu görülmüştür.

Spatial Teknoloji R-tree Index CREATE INDEX agi_spatial_idx ON AGI(GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

Spatial Teknoloji R-tree Index

Spatial Teknoloji Q-Tree Index Quadtree Ayrıştırma ve Morton Kodlaması Küçük ve Büyük boyutlu Tile ile Geometri Gösterimi

Spatial Teknoloji Q-tree Index Görünümü CREATE INDEX HAVZALAR_Q_SIDX ON HAVZALAR_Q(GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS('geodetic=FALSE SDO_LEVEL=8');

Spatial index sorgu değerlendirme mekanizması

Spatial indeks sorgu değerlendirme mekanizması SELECT distinct(C.objectid) FROM akarsu R, iller C WHERE R.Akarsu_ad='Çoruh N.' AND SDO_WITHIN_DISTANCE(C.geom, R.geom, 'querytype=FILTER DISTANCE=100 UNIT=KM')='TRUE' ;

Yaygın Saptial Operatörler sdo_within_distance sdo_filter sdo_nn Sdo_filter mbr’ler ile(spatial index) değerlendirme yapar ve yaklaşık sonuçlar verir.

Kullanılan Veriler ve Özellikleri Tablo Adı Satır Sayısı SGO_GEOMETRY veri tipi Havzalar 28 (Bir havza alt katmanları olması sebebiyle) Polygon AGI 2495 Point Akarsu 23 797 (Nehir, Dere, Çay…)- Bir Akarsu yaklaşık 140 Line Segmentten oluşmaktadır. LineString İller 81 Göller 132 Baraj 1289 Nehirler 1902 Linestring Nehir_Link 118 Nehir_Node 121

Çalışmada kullanılan Stored Prosedürler

Sistemin Genel Yapısı

Coğrafi Veri Altyapısı Mimarisi

Halihazırda Kullanılan Harita WEB Servisleri Google Earth Google Maps Virtual Earth Yahoo Maps

Google Maps API Google Maps JavaScript API, web sayfalarına Google Maps’in gömülmesini sağlar. API kullanmak için, ilk olarak “http://code.google.com/intl/tr/apis/maps/ signup.html” adresinden kayıt olmak suretiyle bir API anahtarı edinmek gerekir. Bir API anahtarı alındığında harita uygulaması geliştirebilinir. Google maps üzerinden haritalara açık bir şekilde ulaşmak mümkün olsa da, Api açık kaynak kodlu değildir. http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA

Openlayers API OpenLayers API herhangi bir web sayfasına kolaylıkla dinamik bir harita koyma imkanı sağlar. OpenLayers, dünya çapında birçok organizasyon tarafından geliştirilmiş ve desteklenmiştir. Web tarayıcılarında harita verisi görüntülemek için kullanılan tamamen açık kaynak kodlu bir JavaScript kütüphanesidir. OpenLayers coğrafi veri erişimi için OpenGIS Consortium standartlarından Web Mapping Service (WMS) and Web Feature Service (WFS) protokollerini destekler. Openlayers Api’si kullanarak Google maps haritalarını görüntülemek mümkün olmaktadır.

Çalışma Kapsamında Kullanılan Sorgu Çeşitleri Akarsulara Yakın AGI’lerin Bulunması Havzalar, Havza İçinde Kalan Agi’ler ve Nehirlerin Bulunması İller içinde kalan Agi’ler ve Havzalar İçinde Kalan İller Göl içinde kalan Agi’ler ve Havzalar İçinde Kalan Göller Barajlar içinde kalan Agi’ler ve Havzalar İçinde Kalan Barajlar

Havza sınırları içinde kalan AGİ’lerin bulunması için tasarlanmış web sayfasından görünüm

Havza sınırları içinde kalan Baraj’ların bulunması için tasarlanmış web sayfası görünümü

Shp2Sdo.exe Çalıştırılması shp2sdo.exe agi agi -g geom -d -x (-180,180) -y (-90,90) -t 0.5 -vspatial sql>sqlplus spatialndx/123@tumay @agi.sql cmd>sqlldr spatialndx/123@tumay control=agi.ctl CREATE INDEX agi_sidx ON agi(geom) INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ('SDO_LEVEL=8'); INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ('AGI', 'GEOM', MDSYS.SDO_DIM_ARRAY (MDSYS.SDO_DIM_ELEMENT('X', -180.000000000, 180.000000000, 0.500000000), MDSYS.SDO_DIM_ELEMENT('Y', -90.000000000, 90.000000000, 0.500000000) ), );

Veritabanı Performans Değerlendirme

SQL Trace and TKPROF SQL trace çalıştırılan SQL’lerin izlenmesini sağlamaktadır. Üretilen trace file’larının daha okunaklı olması içinse, TKPROF hizmetinden yararlanarak trace file’lar anlaşılır bir formatta alınabilmektedir. call count cpu elapsed query current rows ------------- ------- ---------- ---------- ---------- -------- Parse 1 0.00 0.05 831 0 0 Execute 1 0.00 0.00 0 0 0 Fetch 2 0.40 0.37 131 70523 5 ------- ------ ------- ---------- ---------- ---------- ------- total 4 0.40 0.43 962 70523 5

Belirli Bir mesafe içinde kalan geometrilerin tesbiti Sorg No. Test edilen SQL cümlesi Açıklama 1. SELECT a.objectid FROM river_node rn,agi_b a WHERE rn.node_id=173 AND SDO_WITHIN_DISTANCE(a.geom, rn.geometry, ‘querytype=FILTER DISTANCE=30 UNIT=KM' )='TRUE' ORDER BY a.OBJECTID; Fırat nehri node’ları üzerinde seçilen bir node’a 30km uzaklıkta bulunan Agi’lerin bulunması 2. SELECT a.objectid FROM river_node rn,agi_b a WHERE rn.node_id=173 AND SDO_WITHIN_DISTANCE (a.geom, rn.geometry, 'DISTANCE=30 UNIT=KM' )='TRUE' ORDER BY a.OBJECTID; 3. SELECT distinct(C.objectid) FROM akarsu R, iller C WHERE R.Akarsu_ad='Çoruh N.' AND SDO_WITHIN_DISTANCE(C.geom, R.geom, 'querytype=FILTER DISTANCE=100 UNIT=KM')='TRUE' ; Çoruh Nehri’ne 100 km. uzaklıkta bulunan illerin tesbiti 4. SELECT distinct(C.objectid) FROM nehirler R ,iller C WHERE R.Akarsu_ad='Çoruh N.' AND SDO_WITHIN_DISTANCE(C.geom, R.geom, 'DISTANCE=100 UNIT=KM')='TRUE' ; Burada Oracle tarafından kullanılan birincil ve ikincil filtreleme kullanılması durumunda performansın nasıl etkilendiği gösterilmeye çalışılmıştır. 1. ve 3. Sorgularda querytype=FILTER parametresi bu sorgu için birincil filtre kullanıldığını göstermektedir. Bu durumda eğer sonuçlar arasında ciddi farklar yoksa, birincil filtre kullanımı tercih edilmelidir.

Belirli Bir mesafe içinde kalan geometrilerin tesbiti

Akarsulara 200 metre mesafede bulunan Agi’lerin tesbiti Sorgu No Test edilen SQL cümlesi Açıklama 5. SELECT /*+ ORDERED */ a.objectid FROM akarsu rn, agi a WHERE SDO_WITHIN_DISTANCE (a.geom, rn.geom, 'DISTANCE=200 UNIT=METER ' )='TRUE'; Akarsulara 200 metre mesafede bulunan Agi’lerin tesbiti ordered hint’i kullanımı 6. SELECT a.objectid FROM akarsu rn, agi a WHERE SDO_WITHIN_DISTANCE (a.geom, rn.geom, 'DISTANCE=200 UNIT=METER ' )='TRUE'; Akarsulara 200 metre mesafede bulunan Agi’lerin tesbiti Burada Oracle tarafından sunulan Ordered hint’i test edilmiştir. Optimizer tabloların çok büyük olmadığı durumlarda nested-loop join’i tercih etmektedir. Oracle, nested-loop joinde bir tabloyu outer tablo(driving table) olarak almakta ve driving tablonun her satırı için inner tablonun satırlarını fetch etmektedir. Burada inner tablonun from cümleciğinde en sonda gelen tablo olması gerekmektedir. Eğer SQL cümleciğinde birden fazla tablo kullanılmışsa optimizer spatial indeksi kullanmayabilir ve bu durumda “ORDERED” hint'i yardımı ile Optimizer'ı bilgilendirerek, tanımlı indekslerin her zaman kullanımı tetiklemek gerekir. Bu SQL cümlesi de 5 numaralı sorguda görüldüğü gibi yazılabilmektedir. Grafikte de görüldüğü gibi ORDERED hint’i kullanımı performans artışı sağlamaktadır.

Tablolardaki Tüm Geometriler İçin Belirli Bir mesafe içinde kalan geometrilerin tesbiti Sorgu No Test edilen SQL cümlesi Açıklama 7. SELECT a.objectid FROM akarsular rn, agi a WHERE SDO_WITHIN_DISTANCE(a.geom,rn.geom, 'DISTANCE=200 UNIT=METER ' )='TRUE'; Akarsulara 200 metre mesafede bulunan Agi’lerin tesbiti 8. SELECT a.objectid FROM akarsular aks, agi a , TABLE(SDO_JOIN('agi', ‘geom','akarsular','geom','DISTANCE=200 UNIT=METER')) jn WHERE jn.rowid1 = a.rowid AND jn.rowid2 =aks. rowid; 9. SELECT a.objectid FROM akarsular aks, agi a ,TABLE ( SDO_JOIN ('akarsular','geom','agi','geom', 'DISTANCE=200 UNIT=METER')) jn WHERE aks.AKARSU_AD='Coruh N.' jn.rowid1 = a.rowid jn.rowid2=aks.rowid ; Havzalara 200 metre mesafede bulunan Agi’lerin tesbiti 10. SELECT a.objectid FROM akarsular rn, agi a WHERE rn.AKARSU_AD='Coruh N.' and SDO_WITHIN_DISTANCE(a.geom,rn.geom, 'DISTANCE=200 UNIT=METER ' )='TRUE'; Çoruh Nehrine 200 metre mesafede bulunan Agi’lerin tesbiti “Her bir akarsuya 200 metre uzaklıkta bulunan AGİ noktalarının tespit edilmesi” amacıyla dört adet SQL’den 7 ve 8 numaralı sorgular, eğer where cümleciğinde operatörden başka bir kısıt yoksa SDO_JOIN operatörünün kullanımının daha uygun olduğunu göstermek amacıyla çalıştırılmıştır. Sonuçlar da gösteriyor ki; full table scan gerektiren durumlarda SDO_JOIN kullanımı SDO_WITHIN_DISTANCE operatörüne göre daha iyi performans göstermektedir. 9 ve 10 numaralı sorgular çalıştırılarak where cümleciğinde operatör haricinde bir kısıt kulanılmışsa hangi operatörün kullanımının daha uygun olduğu belirlenmek istenmiştir. Burada “Çoruh Nehrine 200 metre uzaklıkta bulunan AGİ noktalarının tespit edilmesi” sorgusu çalıştırılmıştır.

Tablolardaki Tüm Geometriler İçin Belirli Bir mesafe içinde kalan geometrilerin tesbiti R-tree Q-tree

Bir Geometri İçinde Kalan Geometrilerin Tespit Edilmesi Sorgu No. Test edilen SQL cümlesi Açıklama 11. SELECT C.objectid FROM akarsular C, havzalar P, TABLE(SDO_JOIN('akarsular', 'geom', 'havzalar', 'geom','mask=inside')) T WHERE T.rowid1 = C.rowid AND T.rowid2 = P.rowid ; Havzalar içerisinde kalan akarsularun tesbiti 12. SELECT /*+ ORDERED */ a.objectid FROM havzalar b, akarsular a WHERE b.havzano=21 and SDO_RELATE(a.geom, b.geom,'mask=inside') = 'TRUE'; Seçilen Havza içerisinde kalan akarsularun tesbiti 13. WHERE b.havzano=21 and SDO_INSIDE(a.geom, b.geom) = 'TRUE'; Bu amaçla çeşitli operatör ve fonksiyonlar denenmiştir. Öncelikle “ Tüm havzalar içerisinde kalan akarsuların tespit edilmesi“ sorgusu için başlangıçta SDO_JOIN operatörü kullanımının uygun olduğu düşünülse de, iki tablonun eleman sayısı arasındaki büyük fark bu analiz için SDO_JOIN operatörünün kullanımını engellemiştir. Tablolardaki eleman sayısı karşılaştırılabilir büyüklükte olması durumunda SDO_JOIN operatörü kullanımı daha hızlı sonuç verse de, bu fark büyük olduğu durumda SDO_JOIN operatörü kullanılan 11 numaralı sorgu çok uzun bir süre sonuç döndürmemiştir. Aynı sorgu SDO_INSIDE ya da SDO_RELATE operatörleri ile daha hızlı sonuç üretmiştir. Sorguların çalıştırılması ile elde edilen sonuçlar slayt 34’de görülmektedir. SDO_JOIN operatörü, iki tablo eleman sayısı arasında büyük fark olması durumunda etkin bir çözüm olmamaktadır. Burada Havzalar tablosunun 28, Akarsular tablosunun 23797 eleman sayısına sahip olması SDO_RELATE ve SDO_INSIDE operatörlerinin kullanımını zorunlu kılmıştır.

Bir Geometri İçinde Kalan Geometrilerin Tespit Edilmesi

Seçilen Bir Geometriye En yakın Geometrilerin Bulunması Sorgu No. Test edilen SQL cümlesi Açıklama 15. SELECT /*+NO_INDEX*/ ct.objectid FROM river_node comp, AGI ct WHERE comp.node_id=173 and ct.havzano=21 AND SDO_NN(ct.geom, comp.geometry)='TRUE' AND ROWNUM<=5 ORDER BY ct.objectid; Seçilen Bir Geometriye En yakın Geometrilerin Bulunması 16. SELECT ct.objectid FROM river _node comp, AGI ct WHERE comp.node_id=173 and ct.havzano=21 AND SDO_NN(ct.geom, comp.geometry ,'SDO_BATCH_SIZE=100')='TRUE' AND ROWNUM<=5 ORDER BY ct.objectid ; 17. SELECT /*+ FIRST_ROWS*/ a.objectid FROM river_node comp, agi a WHERE comp.node_id=173 and a.havzano=21 AND SDO_NN(a.geom, comp.geometry ,'SDO_BATCH_SIZE=100')='TRUE' AND ROWNUM<=5 ORDER BY a.objectid; Geometriye en yakın noktaların tespit edilmesi amacıyla SDO_NN operatörü kullanılarak “Fırat nehri üzerinde seçilen bir noktaya en yakın Akım Gözlem İstasyonlarının bulunması” sorgusu test edilmiştir. İlk olarak, SDO_NN operatörü ile kullanılan “SDO_BATCH_SIZE” parametresi kullanılarak testler yapılmıştır. Bu amaçla; Fırat nehrine ait vertexlerin tutulduğu “river_node tablosu üzerinde seçilen bir noktanın 21 no’lu havzada yer alan en yakın 5 AGİ noktasını bulmak” amacıyla 15, 16 ve 17 no’lu SQL’ler test edilmiştir. Burada amaç “SDO_BATCH_SIZE” parametresi ve “FIRST_ROWS” hint’lerinin kullanımının test edilmesidir. Test sonuçları slayt 36’da gösterilmiştir.

Seçilen Bir Geometriye En yakın Geometrilerin Bulunması

Q-tree Index denemeleri Sorgu No. Test edilen SQL cümlesi Açıklama 1. SELECT distinct C.objectid FROM akarsu_q R, agi_q C WHERE R.Akarsu_ad='Firat N.' AND SDO_WITHIN_DISTANCE(C.geom,R.geom, 'DISTANCE=0.05')='TRUE' order by C.objectid ; Q-tree index kullanılarak Fırat Nehrine seçilen node’a 0.05 birim mesafede bulunan Agi’lerin bulunması 2. SELECT distinct C.objectid FROM akarsu R,agi C WHERE SDO_WITHIN_DISTANCE(C.geom, R.geom, ' DISTANCE=5 UNIT=KM')='TRUE' order by C.objectid ; R-tree index kullanılarak Fırat Nehrine 5 km. mesafede bulunan Agi’lerin bulunması Slayt 40’da da görüldüğü üzere SDO_WITHIN_DISTANCE operatörünün q-tree indeks ile kullanımı performans açısından uygun olmamaktadır.

Q-tree Index denemeleri

Bir geometriye en yakın geometrilerin tesbiti Sorgu No. Test edilen SQL cümlesi Açıklama 3. SELECT /*+NO_INDEX*/ ct.objectid FROM akarsu_q comp, AGI_q ct WHERE ct.havza_no='08' and SDO_NN(ct.geom,comp.geom, 'SDO_LEVEL=9')='TRUE' AND ROWNUM<=5 ; Q-tree index kullanılarak 8. havzaya ait nehirlere en yakın 5 Agi noktasının tesbiti 4. SELECT /*+NO_INDEX*/ ct.objectid FROM akarsular comp, AGI ct WHERE ct.havza_no='08' and SDO_NN(ct.geom, comp.geom)='TRUE' AND ROWNUM<=5 ORDER BY ct.objectid; R-tree index kullanılarak 8. havzaya ait nehirlere en yakın 5 Agi noktasının tesbiti Bu sorgu için SDO_NN operatörü kullanılmış olup, 8. havzaya ait nehirlere en yakın 5 AGİ noktasının tesbiti için kullanılan sorgular görülmektedir. Slayt 41’de de görünen sorgular çalıştırılarak elde edilen sonuçlar slayt 42’de gösterilmiştir. Sonuç olarak, R-tree indeks kullanılarak tasarlanan sorguların çalıştırılması ile elde edilen performans sonuçlarının daha iyi olduğu görülmüştür.

Bir geometriye en yakın geometrilerin tesbiti

Sonuçlar ve Değerlendirme Çalışmada kullanılan verilerin coğrafi koordinat sisteminde tanımlı olması, 2.İhtiyaç duyulan sorguların gerektirdiği operatörlerin R-tree indeks ile kullanılabilir olması, 3.Q-tree indekslerin tuning işleminin pahalı işlemler olması 4.Q-tree indekslerle tüm yerkürenin modellenememesi gibi sebeplerden dolayı R-tree indeks seçilmiştir.

Sonuçlar ve Değerlendirme 5.Mekansal indeks kullanımının performans üzerinde çok olumlu etkileri bulunmaktadır. 6.Yapılacak analize göre İndeks ve operatör seçimi de performans için önem taşımaktadır.

Teşekkürler…