Comparison of database features

移行の実現可能性を評価するには、次の表を参照して、移行する要素がOracleからEDB Postgres Advanced Serverへの移行でどのように処理されるかを理解してください。

テーブルの凡例

表では、次の単語または記号を使用して互換性を示します。

はい/いいえ機能または特性がデータベースでサポートされているかどうかを示します。

✓ —この機能はOracleと互換性のある方法で動作するため、既存のOracleスキル、プログラムコード、またはデータを引き続き使用または移行できます。

テーブルとパーティショニング

データベース内の構造の範囲と、これらの構造を編成する際にDBAがどの程度の柔軟性を持っているかは、パフォーマンスだけでなく、メンテナンスやその他の操作要件に影響を与える可能性があります。たとえば、データベースをパーティション化する機能により、パフォーマンスが向上します。データを個別の構造に編成し、インフラストラクチャ全体に分散すると、管理性、可用性、および負荷分散も向上します。マテリアライズドビューを使用すると、DBAは、低速でリソースを大量に消費するランタイムクエリ、複雑な結合、または時間のかかるデータのスキャンを、事前結合、事前ソート、および保存された結果からの単純で高速な読み取りに置き換えることができます。

Oracle Enterprise

EDB Postgres Advanced Server

Notes

Temporary tables

Partial

Postgresではグローバル一時テーブルはサポートされていません。

Views

Yes

該当なし

Materialized views

Yes

  • Postgresは自動更新機能を提供していません。トリガーは、Postgresソリューションの一部として使用できます。 <br/>-Postgresはインクリメンタルリフレッシュオプションを提供せず、フルリフレッシュのみを提供します。

Partitioning

Yes ✓

該当なし

Partition by range

Yes ✓

該当なし

Partition by hash

Yes ✓

該当なし

Partition by list

Yes ✓

該当なし

Subpartitioning

Yes ✓

該当なし

Interval partitioning

Yes ✓

該当なし

Partitioned indexes

No

該当なし

ANSI constraints

Yes

該当なし

Tablespaces

Yes

OracleとPostgresでは、テーブル、インデックス、およびその他のデータベースファイルを整理および指定するためにテーブルスペースが使用されます。ただし、Oracleとは異なり、Postgresでは、テーブルスペースは自動生成されたテーブル、インデックス、およびその他のデータベースファイルが保存されるディレクトリです。

Index organized tables

No

Postgresでは、インデックスでテーブルをクラスター化できるため、事前に並べ替えられた構造からデータを読み取るときに同様のパフォーマンスが向上します。

Sequences

Yes ✓

  • Postgresでは、一部のキーワードオプションが利用できません。 <br/> - 最大シーケンス値に若干の違いがあります。

データ型

データ型は、DBMSがシステムで情報を定義、実装、および使用する方法を提供し、複数のデータ型が使用されている場合にデータベースによってデータが解釈される方法に制約を設定します。 EDB Postgres Advanced ServerはOracleデータ型との強力な互換性があり、拡張性が高いため、一般的になった新しい新しいデータ型とワークロードをすばやくサポートできます。

Data types

Oracle Enterprise

EDB Postgres Advanced Server

Type system

Static + dynamic (through ANYDATA)

Static integer NUMBER NUMBER ✓, DEC , NUMERIC, SMALLINT (16-bit), INT, BINARY_INTEGER, PLS_INTEGER, INTEGER (32-bit), BIGINT (64 bit)

Floating point

BINARY_FLOAT, BINARY_DOUBLE

BINARY_FLOAT ✓, BINARY_DOUBLE ✓, FLOAT, REAL (32-bit), DOUBLE PRECISION (64-bit)

Decimal

NUMBER

NUMBER ✓, DEC, DECIMAL, NUMERIC

String

CHAR, VARCHAR2, CLOB, NCLOB, NVARCHAR2, NCHAR, LONG (deprecated)

CHAR ✓, VARCHAR ✓, CLOB ✓, NCLOB ✓, NVARCHAR2 ✓, NCHAR, CHARACTER, TEXT, CHAR, VARYING, CHARACTER VARYING, VARCHAR

Binary

BLOB, RAW, LONG RAW (deprecated), BFILE

BLOB ✓, RAW ✓, LONG RAW ✓, BYTEA (no compatible type for BFILE)

Date/time

DATE, TIMESTAMP (with/without TIMEZONE), INTERVAL

DATE ✓ TIMESTAMP (with/without TIMEZONE), INTERVAL ✓, TIME (with/without TIMEZONE)

Boolean

Not Available

BOOLEAN

ROWID

ROWID

ROWID

XMLTYPE

XMLTYPE

XMLTYPE

Key-value

Requires NSWLDB which is a separate database program

Yes, is integrated into the core database

JSON

Use VARCHAR2, CLOB, and BLOB with is_json check constraint.

JSON and fast binary JSONB with 58 JSON operators, functions and relational json converters

Spatial / Geospatial

Yes

Yes

Other

IMAGE, AUDIO, VIDEO, DICOM

ENUM, POINT, LINE, LSEG, BOX, PATH, POLYGON, CIRCLE, CIDR, INET, MACADDR, BIT, UUID, XML, arrays, composites, ranges, custom

Data domains

Yes

Yes

インデックス

サポートされているさまざまなデータ型と、それらのデータ型を使用する新しいワークロードに対して最適なパフォーマンスを提供するには、データベースがさまざまなインデックスもサポートする必要があります。 Postgresはこの点でややユニークです。特に、新しいデータ型に特化したインデックスを簡単に開発できるGiSTインデックスです。

Indexes

Oracle Enterprise

EDB Postgres Advanced Server

Notes

B-Tree

Yes

Yes

該当なし

Hash

Yes

Yes

該当なし

Expressions

Yes

Yes

該当なし

Partial

Yes

Yes

該当なし

Reverse

Yes

No

Postgresでは、機能インデックスを使用してフィールドの順序を逆にすることができます。

Bitmap

Yes

No

ユースケースによっては、 BRINインデックスの使用が適している場合があります。

Block Range Index

Yes

Yes

該当なし

GiST <br/> Easy creation of specialized indexes

No

Yes

該当なし

GIN <br/> Custom inverted indexes

No

No

該当なし

K-nearest-neighbor

Yes

No

パッケージDMBS_DATA_MININGおよびSpatialオプションを使用してOracleで使用できます。

Full-text search

Yes

Yes

該当なし

Spatial

Yes

Yes

無料のPostGIS拡張機能を使用してPostgresで利用できます。

SQL機能

EDB Postgres Advanced Serverは、ANSI- SQL:2008標準に厳密に準拠しています。また、トランザクションDDLもあり、テーブルの作成など、 DDLへの大規模な変更でもバックアウトできます。データベースまたは表領域の追加/削除から回復することはできませんが、他のすべてのカタログ操作は元に戻すことができます。この機能は、スキーマのアップグレードなどの複雑な作業を行うときの保護によく使用されます。このような変更をすべてトランザクションブロックに入れると、すべてがアトミックに適用されるか、まったく適用されないようにすることができます。これにより、スキーマ変更の誤字やその他のエラーによってデータベースが破損する可能性が低下します。これは、間違いによりリレーショナルキーが破壊される可能性のある複数の関連テーブルを変更する場合に特に重要です。

SQL capabilities

Oracle Enterprise

EDB Postgres Advanced Server

Union

Yes

Yes ✓

Intersect

Yes

Yes ✓

Except

Yes

Yes ✓

Inner Joins

Yes

Yes ✓

Outer Joins

Yes

Yes ✓

Inner Selects

Yes

Yes ✓

Merge Joins

Yes

Yes ✓

Common Table Expressions

Yes

Yes

Windowing Functions

Yes

Yes

Parallel Query

Yes

Yes

Query Hints

Yes

Yes ✓

Transactional DDL

No

Yes

Alter Session

Yes

Yes

Dynamic SQL

Yes

Yes

SQL拡張機能

Oracleには、Oracleユーザーに人気のSQL拡張機能が多数あります。 SQL言語の標準ではありませんが、DBAと開発者にユーティリティと利便性を提供します。 EDB Postgres Advanced Serverは、EDBの顧客が最も頻繁に求めるものをサポートしています。

Oracle Enterprise extension

EDB Postgres Advanced Server

DUAL

Yes ✓

DECODE

Yes ✓

ROWNUM

Yes ✓

SYSDATE

Yes ✓

SYSTIMESTAMP

Yes ✓

NVL, NVL2

Yes ✓

(+) Syntax for Outer Joins

Yes ✓