osman hömek / not defteri

November 21, 2008

esri ve oracle spatial

Filed under: arcsde, geodatabase, oracle spatial — osman @ 4:42 pm

Bildiğiniz gibi ESRI, 9.3  versiyonunu yeni çıkardı. Peşinede SP1 geldi. 

Gelen en büyük yeniliklerden birisi de ArcSDE yi Oracle üzerine kurarken, ArcSDE nin SHAPE geometry kolonu yerineOracle Spatial ın SDO_GEOMETRY kolonunu seçilebiliyor olması. Bu özellik aslında eskiden de vardı, ancak 9.3 ün kurulumundanSeçilebilir halde olacak kadar açığa çıkmış değildi. 

Bu durum bize Spatial Join gibi coğrafi işlemler için Oracle Spatial ın gücünü de aynı zamanda kullanma imkanı verdi. 

Birazda teknik detaylara inelim. 

Sistem:Arcgis Server 9.3ArcSde 9.3Oracle 10g R2 Patch 1

Enterprise Edition 

ArcSDE, Oracle üzerine SDO_GEOMETRY kolonu kullandırılarak kuruldu. 

ArcCatalog kullanılarak, Oracle üzerine geo_il ve geo_il_merkezi tabloları upload edildi.İlgili tablolardann Properties/Indexes bölümünden Spatial Index leri silindi. 

CREATE INDEX MI_GEO_IL_MERKEZI_GI ON MI_GEO_IL_MERKEZI(GEOLOC) INDEXTYPE IS MDSYS.SPATIAL_INDEX 

Script I aracılığı ile Oracle Spatail üzerinden Spatial Index verildi. 

SELECT  a.kod, b.ad, a.tip, b.kod, b.ad, a.tip from geo_il_merkezi a, geo_il b where SDO_CONTAINS(b.shape, a.shape)=’TRUE’ order by a.ad 

Böylelikle yukarıdaki sql cümlesi çalıştırılabiliyordu. Ancak yapılan testler sonrasında performansın rezalet olduğu görüldü. 

Sonrasında  

/*+ ORDERED INDEX(GEO_IL_MERKEZI_GI) */  betiği eklenerek, SQL cümlesi çalıştırılırken ismi belirtilen INDEX in kullanılması zorunlu hale getirildi.Burada önemli olan veya araştırılması gereken konu index in ORDERED anahtar kelimesi ile verilmesi. Şayet bu anahtar kelime kullanılmaz iseSql sonucu yine çok yavaş dönüyordu. 

Son olarak SQL cümlemiz aşağıdakigibi oldu ve performansı gayet id. 1sn nin altında cevap dönüyordu. 

SELECT  /*+ ORDERED INDEX(GEO_IL_MERKEZI_GI) */ a.kod, b.ad, a.tip, b.kod, b.ad, a.tip from geo_il_merkezi a, geo_il b where SDO_CONTAINS(b.shape, a.shape)=’TRUE’ order by a.ad

Powered by WordPress