Posts mit dem Label Performance werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Performance werden angezeigt. Alle Posts anzeigen

Donnerstag, 12. März 2020

Vector Performance Acceleration (VPA) jetzt einschalten für mehr Performance bei Spatial Queries

In meinem Post vom 6.Dezember hatte ich auf die Freigabe der kompletten Locator/Spatial Funktionalität für alle Editionen der Oracle Datenbank hingewiesen.
Das ermöglicht Ihnen jetzt auch, den Parameter SPATIAL_VECTOR_ACCELERATION standardmäßig auf TRUE zu setzen. Auch diese Änderung sollte natürlich vorher in einer nicht-produktiven Instanz getestet werden.

Wie kann der Parameter gesetzt werden?
Auf Instanz-Ebene ALTER SYSTEM SET SPATIAL_VECTOR_ACCELERATION = TRUE;
In der xxxinit.ora SPATIAL_VECTOR_ACCELERATION = TRUE;
Auf Session-Ebene ALTER SESSION SET SPATIAL_VECTOR_ACCELERATION = TRUE;
Ein priviliegierter Account (system oder sys as sysdba) wird jeweils vorausgesetzt.

Dienstag, 7. April 2015

Beispielhaft den Nutzen von VPA testen - Ein kleines Skript für den Eigengebrauch


Im Anschluss an einen Workshop zu Oracle Spatial 12c hat einer der Teilnehmenden das Feature VPA (Vector Performance Accelerator) erfolgreich getestet.
Ich habe dazu eine kurze Nachricht in der Oracle Spatial and Graph Gruppe von LinkedIn geposted.

Für diejenigen, die VPA selbst mal ausprobieren wollen, habe ich hier ein kleines Skript. Dieses vergleicht die Ausführungszeiten einer SQL Query ohne VPA gegen die mit VPA. Es kann für eigene zu testende Abfragen entsprechend angepaßt werden.

Das Ergebnis für 3 beispielhafte Queries kann sich mehr als sehen lassen. Die Zusammenfassung findet Ihr am Ende.

Für die Tests habe ich Beispieldaten (Postleitzahlgebiete von DE) des Oracle Partners GfK GeoMarketing verwendet. (Den anzupassenden Teil habe ich rot gekennzeichnet.)
REM spatial_12c_vpa_perf_test.sql - collect performance information related to Oracle Spatial 12c
REM Run script as user SYSTEM
define SRDCNAME='SPATIAL_VPA_PERF_TRACE'
set TERMOUT off FEEDBACK off VERIFY off TRIMSPOOL on HEADING off
COLUMN SRDCSPOOLNAME NOPRINT NEW_VALUE SRDCSPOOLNAME
select 'SRDC_'||upper('&&SRDCNAME')||'_'||upper(instance_name)||'_'||
       to_char(sysdate,'YYYYMMDD_HH24MISS') SRDCSPOOLNAME from v$instance;
set TERMOUT on
REM
spool &&SRDCSPOOLNAME..txt
select '+----------------------------------------------------+' from dual
union all
select '| Diagnostic-Name: '||'&&SRDCNAME' from dual
union all
select '| Timestamp:       '||
          to_char(systimestamp,'YYYY-MM-DD HH24:MI:SS TZH:TZM') from dual
union all
select '| Machine:         '||host_name from v$instance
union all
select '| Version:         '||version from v$instance
union all
select '| DBName:          '||name from v$database
union all
select '| Instance:        '||instance_name from v$instance
union all
select '+----------------------------------------------------+' from dual
/

set HEADING on
set echo on feedback on termout on pages 999 lines 132 long 300000000

DEFINE OBJ_OWNER = &1
DEFINE OBJ_PASSWD = &2

/*
 * Grant necessary privileges
 */

grant alter system to &&OBJ_OWNER;
grant alter session to &&OBJ_OWNER;

connect &&OBJ_OWNER/&&OBJ_PASSWD
alter system flush shared_pool;

alter session set tracefile_identifier='SRDC_Spatial_VPA_Perf_Test';
alter session set events '10046 trace name context forever, level 12';
-- alter session set sql_trace = TRUE;

alter session set spatial_vector_acceleration = FALSE;

set timing on
REM -- ------------------------------------
REM -- Add query to be traced and analyzed
REM -- Run without VPA first
REM -- ------------------------------------

REM -- Begin of query
with test as (
  select sdo_aggr_union(sdoaggrtype(g.geometry,0.05)) aggr_geom 
    from de_5digpc_2010 g
   where substr(g.id,1,1) in ('0','1','2'))
select count(*) 
  from test;
REM -- End of query

set timing off

alter system flush shared_pool;
alter session set spatial_vector_acceleration = TRUE;
 
set timing on
REM -- ------------------------------------
REM -- Add same query
REM -- Run with VPA now
REM -- ------------------------------------

REM -- Begin of query
with test as (
  select sdo_aggr_union(sdoaggrtype(g.geometry,0.05)) aggr_geom 
    from de_5digpc_2010 g
   where substr(g.id,1,1) in ('0','1','2'))
select count(*) 
  from test;
REM -- End of query
  
set timing off

spool off

Im Ergebnis erhalte ich Faktoren von 10 bis 253, was die Ausführungszeiten betrifft.
Fazit:
Je grösser die Anzahl der zu aggregierenden Polygone, umso höher ist der Performancegwinn.

Und hier sind die Ergbnisse im Detail:

Anzahl der aggr. Objekte Geometrietyp Elapsed time in Sek. ohne VPA Elapsed time in Sek. mit VPA Faktor Abfrage
10 Polygon 18,33 1,78 10 with test as (
select sdo_aggr_union(sdoaggrtype(g.geometry,0.05)) aggr_geom
from de_1digpc_2010 g)
select count(*)
from test;
95 Polygon 151,66 2,44 62 with test as (
select sdo_aggr_union(sdoaggrtype(g.geometry,0.05)) aggr_geom
from de_2digpc_2010 g)
select count(*)
from test;
2168 Polygon 1338,65 5,29 253 with test as (
select sdo_aggr_union(sdoaggrtype(g.geometry,0.05)) aggr_geom
from de_5digpc_2010 g
where substr(g.id,1,1) in ('0','1','2'))
select count(*)
from test;

Donnerstag, 19. Februar 2015

Alle Präsentationen vom BIWA / Oracle Spatial Summit 2015

Die Materialien vom Oracle Spatial Summit am 27.-28. Januar 2015 in Redwood Shores / CA sind jetzt online verfügbar.
Hier ist eine Auswahl mit direkten Links:
 Eine Übersicht zu allen Sessions mit den Verweisen auf die Download-Links findet sich hier.

Wer spannende Projekte im Umfeld der Oracle Spatial Technologies hat und diese gern auf dem nächsten Spatial Summit vorstellen möchte, sollte sich schon mal diesen Termin vormerken:
  • 26.-28. Januar 2016 im Oracle Conference Center in Redwood Shores
Mehr Infos gibt es auf den BIWA Summit Seiten. 

Dienstag, 20. Januar 2015

Vergleichender Test von Oracle DB 12 mit eingeschaltetem Vector Performance Accelerator (VPA)

Simon Greener hat die Auswirkungen des Oracle Spatial 12c Features "Vector Performance Acceelerator" auf die Performance von räumlichen Abfragen untersucht. Darüberhinaus hat er die Ergebnisse mit anderen Hersteller verglichen.
Vorgehensweise und Ergebnisse sind hier veröffentlicht. Die Ergebnisse gibt es auf Nachfrage per Formular oder als Zusammenfassung in diesem Foliensatz von der OOW 2014 (Folien 11 bis 13).

Die Nutzung von VPA ist sehr einfach, indem der entsprechende Datenbank-Parameter auf TRUE gesetzt wird. Damit l&aum;sst sich sehr schnell in der eigenen Umgebung evaluieren, welchen Nutzen das Feature haben kann.

ALTER SYSTEM SET SPATIAL_VECTOR_ACCELERATION = TRUE;
Es ist zu beachten, dass Simon bei diesen Tests keine weiteren performance-beeinflussenden Techniken wie z.B. Parallelisierung betrachtet hat.

Wenn jemand eigene Tests mit VPA und Parallelisierung aufsetzen möchte, kann sie oder er sich gern an uns wenden.