63,000,000ポイントをWKT形式に変換しているときに、Oracle Spatial 11Gのテーブルを更新するとパフォーマンスの問題が発生します。Postgresとも比較しました。PostgresとOracleはどちらも、同じサーバーでホストされている2つの仮想マシンで実行されます。
Postgres:プロセッサ12、RAM 64GB
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:プロセッサー12、RAM 40GB、pga + sga =最大8GB
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);
テーブルの更新中にPostgresがOracleよりも優れているのはなぜですか?Oracleの空間パフォーマンスに影響を与える可能性のある原因はどれですか。
現時点では、空間インデックスを利用していません。
UPDATE
全表スキャンでは非常に負荷の高い操作です。CREATE TABLE ... AS
コンストラクトを使用する必要があります。