Technical Update: ‘What's new in Oracle Spatial 12c’
20 dec 2013 - Shintaro Nagaoka

De OGh-themabijeenkomst 'What's new in Oracle Spatial 12 c' die op de 12 november jl. bij Oracle in Utrecht is gehouden, stond volledig in het teken van de ontwikkelingen in de nieuwe Oracle 12c release die relevant zijn voor gebruikers van Oracle Spatial. Ook werd uitgebreid aandacht besteed aan de specifieke veranderingen in Oracle Spatial-Graph 12c. Shintaro Nagaoka van Oracle Nederland en een van de sprekers op de themabijeenkomst, zet deze nieuwe ontwikkelingen en features voor de OGh op ee

Het is inmiddels bijna een half jaar geleden dat Oracle Database 12c Release 1 is uitgebracht. Er is meer dan 5 jaar hieraan gewerkt met meer dan 2.500 man jaren ontwikkelingswerk gevolgd door meer dan 1,2 miljoen uren stress test. Oracle Database 12cR1 bevat pakweg 500 nieuwe features. Naast de meer bekende en generieke nieuwe features zoals Pluggable Database (PDB) of Automatic Data Optimalisatie (ADO) heeft deze nieuwe Oracle database release ook talrijke nieuwe functionaliteiten op het gebied van Spatial.


Oracle Spatial and Graph

Wat in ieder geval direct opvalt in Oracle Database 12c is de productnaamwijziging. Oracle Spatial heet voortaan Oracle Spatial and Graph. Deze nieuwe naamgeving heeft te maken met Oracle’s intentie om meer aandacht te vestigen op het bestaan van de semantische mogelijkheden binnen Oracle Spatial. Deze zijn voortgekomen uit het Network Data Model en sinds Oracle Database 10gR2 beschikbaar.

Oracle biedt namelijk de mogelijkheid om alle op de semantics gerelateerde data zoals de triples, graphs, onthologie enz. in de Oracle Database te laten opslaan. Daarbij voldoet Oracle’s aanpak volledig aan de industriestandaarden in deze specifieke wereld: Resource Description Framework (RDF), Web Onthology Language (OWL), SPARQL taal v1.1 enz.

Dit maakt ook de integratie met de gangbare open source tooling makkelijk. De voorbeelden hiervan zijn: Jena, Joseki, ARQ, TDB, SDB, Sesame, Pellet, D2RQ, Jetty, Cytoscape, GATE, Protégé - bijvoorbeeld voor de datavisualisatie of het beheer van OWL.

 

Net als met de Spatial het geval is leidt eender gelijke omgeving met de semantische data meestal tot een grote opslag. Doordat Oracle kiest voor de aanpak van dataverwerking in de database, is de totale omvang van semantische data nooit een probleem. Zoals altijd kunnen de traditionele krachten van de Oracle database ten aanzien van de schaalbaarheid, beschikbaarheid, databeveiliging et cetera leiden tot een robuuste semantische dataopslag en analyze-omgeving.

De semantische technologieën kunnen nuttig zijn in de volgende situaties:

  • Maken het mogelijk dat de schema's continu en dynamisch evolueren als reflectie op de evolutie van de werkelijke wereld.
  • Dit kan bij voorbeeld tot de flexibele datawarehousing leiden.
  • Helpen bij het ontdekken van de nieuwe relaties op grond van de opgeslagen data verzameld op grond van de reeds bekende relaties.
  • Dit wordt toegepast in de wetenschappelijke en farmaceutische onderzoeken evenals bij juridische of zelfs bij de marketingonderzoeken.
 

Sterk verbeterde performance van Oracle Spatial

Wellicht de belangrijkste verandering in Oracle Spatial 12c is de performance. Deze zijn terug te vinden in de volgende gebieden:

  • Redo reductie
  • Verbeterde concurrency handeling
  • Alles parallel
  • Statistics op de Spatial operaties

De updates van de Spatial data vergen veel I/O op Redo wegens het gebruik van BLOB. In 12c is de tijd gemoeid om de informatie weg te schrijven veel efficiënter gemaakt waardoor bij sommige handelingen 50% tot 90% performancewinst te behalen is.

De UPDATE concurrency is ook geoptimaliseerd. In 12c worden er verschillende methodes gebruikt voor het updaten van de Spatial index afhankelijk van of het om een enkele rij DML gaat of om een batch. In geval van de enkele rij DML wordt nu de Index table in de Share mode gelocked. Daarmee is de kans op de index conflict met de andere operaties bezig aan de overige index nodes verkleind. Voor de batch Index table operaties wordt nu gekozen voor de Exclusive locks. Via de SQL cache en de kleinere redo zorgt deze methode ervoor dat de de locks veel van kortere duur zijn.

In 12c zijn de resterende Spatial operaties uitvoerbaar gemaakt via de parallellisatie.

De analyses statistics in 11g was wat betreft Oracle Spatial niet volledig. Dit is gewijzigd waardoor de probleemoorzaken makkelijker te traceren zijn.

 

Vector Performance Acceleration (VPA)

De andere belangrijke feature heet Vector Performance Acceleration (VPA) die feitelijk een naam is van een verzameling van een aantal features. Een daarvan is Metadata Caching. Oracle caches hiermee de vaak voorkomende queries op het database niveau waardoor meerdere sessies van dezelfde gecached informatie kunnen profiteren. Dit leidt tot de sterk verbeterde parse en fetch performance.

De andere performancewinst komen via de snellere executie van de Spatial operatoren en functies. Menige veranderingen hebben geleid tot een tien maal hogere performancewinst.

 

Nieuwe Spatial features

Er zijn uiteraard veel nieuwe Spatial and Graph features in Oracle 12c Release 1. Een selectie:

  1. Ondersteuning voor de NURBS curves
    Oracle Spatial 12c geeft ondersteuning voor niet-uniforme rationele B-spline (NURBS) curve geometrie. NURBS curves presenteren vrije vormen met willekeurige vormen. NURBS presentatie geeft controle over de vorm van de curve, omdat controlepunten en knopen bepalen de vorm van de curve, en ze laten complexe vormen worden weergegeven met weinig data.
  2. 3D gerelateerde features
    In deze versie zitten verbeteringen t.a.v. de 3D data afhandelingen in vergelijking met de vorige release. In 11g werd hoogte-informatie niet meegenomen voor bepaalde operatie op driedimensionale geodetische geometrie. In 12c Spatial wordt de hoogte benaderd en opgenomen in berekeningen voor deze operaties.
    Geodetische geometrie heeft te maken met het mappen van de waarden uit een coördinaatsysteem op de aardeoppervlak die geen perfecte bol is met veel oneven kromtes.
  3. Nieuwe Spatial Metadata Views (3D thema’s, scènes, viewframes)
    ALL_SDO_xxx en USER_SDO_xxx metadata views zijn toegevoegd voor 3D thema's, scènes en viewframes
  4. Nieuwe en gewijzigde SDO_CS Subprogramma’s
    Enkele nieuwe subprogramma’s zijn toegevoegd aan MDSYS.SDO_CS package. SDO_CS package bevat subprogramma's voor het werken met coördinaten systemen. Men kan expliciete coördinaten omrekeningen voeren op een geometrie of een hele laag geometrie (d.w.z. alle geometrie in een bepaalde kolom in een tabel).
    SDO_CS.CONVERT_3D_SRID_TO_2D
    • Voor conversie van een drie dimensionale SRID waarde naar een twee dimensionale SRID waarde. SRID ( Spatial Reference System Identifier ) wordt gebruikt om het coördinaatsysteem in gebruik aan te duiden.

    SDO_CS.LOAD_EPSG_MATRIX

    • Voor het laden van een EPSG matrix van het NADCON, NTv2, of VERTCON formaat. EPSG data set bevat data voor de ordinaten referentiesystemen en ordinaten transformatie.
    SDO_CS.VALIDATE_EPSG_MATRIX
    • Valideert een EPSG data set van NADCON, NTv2 of van VERTCON formaat.
  5. Er zijn enkele nieuwe SDO_UTIL Subprogramma’s toegevoegd:
    SDO_UTIL.CONVERT3007TO3008
    • Voor de conversie van een 3D veel vlakken geometrie (SDO_GTYPE 3007) in een eenvoudige vaste geometrie (SDO_GTYPE 3008).
    SDO_UTIL.GET_2D_FOOTPRINT
    SDO_UTIL.SIMPLIFYVW
    SDO_UTIL.THEME3D_GET_BLOCK_TABLE
    SDO_UTIL.THEME3D_HAS_LOD
    SDO_UTIL.THEME3D_HAS_TEXTURE
    SDO_UTIL.VALIDATE_3DTHEME
    SDO_UTIL.VALIDATE_SCENE
    SDO_UTIL.VALIDATE_VIEWFRAME

    Tevens zijn de volgende veranderingen aangebracht: SDO_UTIL.AFFINETRANSFORMS heeft nu de default waarden voor alle parameters behalve de eerste (geometry). Hiermee wordt het programmeren een stuk eenvoudiger.

    SDO_UTIL.CIRCLE_POLYGON heeft een nieuw format dat de start_azimuth en end_azimuth parameters bevat.
    SDO_UTIL.SIMPLIFY heeft een nieuwe optionele parameter remove_loops. Hiermee kan men zich verzekeren dat een vereenvoudigde lijn segment geometrie geen zelf kruisende loops in het midden bevat. (SDO_UTIL.SIMPLIFYVW heeft ook de remove_loops parameter.)
  6. Nieuwe SDO_GEOM_MBR Operator
    SDO_GEOM_MBR is een SQL operator die qua functionaliteit gelijk is aan SDO_GEOM.SDO_MBR , maar geeft veel betere performance.
  7. SPATIAL_VECTOR_ACCELERATION System parameter (VPA)
    De nieuwe database systeem parameter SPATIAL_VECTOR_ACCELERATION is geintroduceerd om de Vector Performance Accelerator (VPA) feature te activeren. De default waarde hiervan is FALSE. Deze SPATIAL_VECTOR_ACCELERATION feature en de verwante systeem parameters waarmee de performance significant verbeterd kan worden is alleen beschikbaar via de Oracle Spatial and Graph optie. Deze parameter kan worden aangezet zowel voor het gehele systeem of voor een enkele sessie.

Oracle Spatial vs Oracle Locator in 12c

Het basisverschil tussen Oracle Spatial en Oracle Locator is onveranderd gebleven. Dat houdt in dat Oracle Locator als een standard feature van Oracle Database SE/EE in staat is om de basis handelingen te plegen rondom de standard geometrie.

De overige zaken zoals Web Services, 3D, Geocoding, Lineare Reference Systems, Network Model blijven het terrein van Oracle Spatial.

De nieuwe Vector Performance Acceleration (VPA) in 12c blijft ook beperkt tot Oracle Spatial.

De wijzigingen t.o.v. de eerdere releases betreffen de SDO_GEOM package en de aggregatie functies. Vanaf 12c zijn alle SDO_GEOM functies zoals SDO_UNION en SDO_INTERSECTION zijn beschikbaar geworden binnen Locator evenals de aggregatie functies zoals SDO_AGGR_UNION of SDO_AGGR_CENTROID.

 

Samenvattend zijn er genoeg reden om serieus om de inzet van Oracle 12c en Oracle 12c Spatial te overwegen. Doordat de Spatial data meestal sneller groeit dan de gewone database inhoud zou de performancewinst een zeer welkome verbetering zijn.