Ich habe ein Leistungsproblem beim Aktualisieren einer Tabelle in Oracle Spatial 11G, während 63.000.000 Punkte in das WKT-Format konvertiert werden. Ich habe auch einen Vergleich mit Postgres gemacht. Sowohl Postgres als auch Oracle werden auf zwei virtuellen Maschinen ausgeführt, die auf demselben Server gehostet werden.
Postgres: Prozessoren 12, RAM 64 GB
create table alldata(geom geometry(Point, 4326));
alter table alldata add column wkt4326 varchar(100);
update alldata set wkt4326 = St_AsText(geom) -- 25 minutes
Oracle 11G: Prozessoren 12, RAM 40 GB, pga + sga = maximal 8 GB
create table alldata(geom sdo_geometry); -- e.g.: SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(aLon, aLat, null), null, null)
alter table alldata add (wkt4326 varchar(100));
-- **Did not complete in a hour...**
update alldatafiltered set wkt4326 = SDO_UTIL.TO_WKTGEOMETRY(geom);
Warum übertrifft Postgres Oracle beim Aktualisieren von Tabellen? Welche Ursachen können die räumliche Leistung von Oracle beeinflussen?
Im Moment nutze ich keinen räumlichen Index.
UPDATE
ist eine sehr teure Operation für einen vollständigen Tabellenscan; Sie sollten einCREATE TABLE ... AS
Konstrukt verwenden.