新機能¶
AdvancedServer13を作成するために、EDBPostgresAdvancedServer12では次の機能が変更されました。
AdvancedServerは
PARALLELをサポートするようになりました|インデックスまたはテーブルの並列処理を有効または無効にするCREATE TABLE, ALTER TABLE, CREATE INDEXおよびALTER INDEXコマンドのNOPARALLEL節。詳細については、OracleDeveloper'sSQLGuideのデータベース互換性 を参照してください。AdvancedServerは、テーブルのインデックスを明示的に作成するために、
CREATE TABLEおよびALTER TABLEコマンドでUSING INDEX ... create_index_statement句をサポートするようになりました。詳細については、OracleDeveloper'sSQLGuideのデータベース互換性 を参照してください。AdvancedServerには
AUTOMATIC LIST PARTITIONINGが導入されており、これにより、パーティションキーの値が既存のパーティションに対応していない場合に、データベースが新しいパーティションを自動的に作成できます。詳細については、データベース互換性テーブルパーティショニングガイド を参照してください。AdvancedServerは、最も頻繁な入力値を返す値のセットを引数とする
STATS_MODE関数を追加しました。詳細については、『Oracle開発者リファレンスガイドのデータベース互換性』を参照してください。AdvancedServerは、タイムゾーンなしのタイムスタンプを返す
SYSDATE機能を追加しました。詳細については、『Oracle開発者リファレンスガイドのデータベース互換性』を参照してください。AdvancedServerは、
MEDIAN機能にsmallint, init, bigintおよびnumericバリアントを追加しました。詳細については、『Oracle開発者リファレンスガイドのデータベース互換性』を参照してください。AdvancedServerは、
TO_NUMBER機能にFM形式のサポートを追加しました。詳細については、『Oracle開発者リファレンスガイドのデータベース互換性』を参照してください。AdvancedServerは、ステートメントのログ記録をサポートし、一括実行中に処理された行数を記録するようになりました。詳細については、 レポートとログ/何をログに記録するか<reporting_and_logging_what_to_log>`の ``edb_log_every_bulk_value` を参照してください。
AdvancedServerは、
DBMS_OUTPUTパッケージでdbms_output.serveroutputをFALSEに設定することにより、Oracleスタイルの表示出力をサポートする新しいGUCを追加しました。詳細については、OracleDeveloper'sBuilt-inPackageGuide のデータベース互換性を参照してください。EDB*Loaderは、重複レコードを
BADファイルに移動するためのHANDLE_CONFLICTSパラメーターをサポートするようになりました。詳細については、OracleDeveloper'sToolsandUtilitiesGuideのデータベース互換性 を参照してください。AdvancedServerは、ディレクトリの所有者を変更するための
ALTER DIRECTORY ...OWNER TOコマンドを追加しました。詳細については、OracleDeveloper'sSQLGuideのデータベース互換性 を参照してください。AdvancedServerは、トリガーの暗黙オブジェクトの所有者を変更する
ALTER TRIGGER ...ON AUTHORIZATIONコマンドを追加しました。詳細については、OracleDeveloper'sSQLGuideのデータベース互換性 を参照してください。EDB*Loaderは
-c CONNECTION STRINGまたはconnstr=CONNECTION_STRINGパラメーターをサポートするようになりました。これにより、libpqでサポートされるSSLパラメーターと接続パラメーターを指定できます。詳細については、OracleDeveloper'sToolsandUtilitiesGuideのデータベース互換性 を参照してください。AdvancedServerには、タイムスタンプ形式の文字列を
TIMESTAMPTZデータ型に変換するTO_TIMESTAMP_TZ関数が追加されています。詳細については、『Oracle開発者リファレンスガイドのデータベース互換性』を参照してください。AdvancedServerは、CSVとXMLの両方の監査ログでログの一貫性を保つための追加フィールドを追加しました。詳細については、EDBAuditLogging を参照してください。
AdvancedServerは、リモートステートメントのスキャンタイプを制御する新しいGUC
edb_dblink_oci.rescanを追加しました。詳細については、OracleDeveloper'sSQLGuideのデータベース互換性 を参照してください。AdvancedServerは、応答本文にデータが存在しない場合に
read_line, read_textおよびread_rawパッケージプロシージャからのエラーを処理するために、UTL_HTTPパッケージにutl_http.end_of_body例外のサポートを追加しました。詳細については、OracleDeveloper'sBuilt-inPackageGuide のデータベース互換性を参照してください。AdvancedServerは、パッケージボディ内の関数またはプロシージャの
forward declarationをサポートするようになりました。詳細については、OracleDeveloper'sSQLGuideのデータベース互換性 を参照してください。AdvancedServerは、サブパーティションレベルで自動ハッシュパーティションを作成するための
PARTITIONS, SUBPARTITIONS番号と、自動生成されたパーティションまたはサブパーティションを格納するテーブルスペースを指定するためのSTORE IN句を導入します。詳細については、データベース互換性テーブルパーティショニングガイド を参照してください。AdvancedServerは、データ型の暗号化と復号化のために
DBMS_CRYPTOパッケージにAES192とAES256のサポートを追加しました。詳細については、OracleDeveloper'sBuilt-inPackageGuide のデータベース互換性を参照してください。AdvancedServerは、サーバーとの認証に成功すると
pg_hba.confエントリをサポートするようになりました。詳細については、 pg_hba.confファイルの変更 を参照してください。AdvancedServerは、指定された条件が発生したときにトリガーを実行するために、
COMPOUND TRIGGER内にWHEN条件を実装しています。詳細については、『OracleDeveloperSQLガイドのデータベース互換性*』または『データベース互換性ストアドプロシージャ言語ガイド』を参照してください。AdvancedServerは、
LONG列の一部を定義して返すために、DBMS_SQLパッケージにcolumn_value_long、define_column_long、およびlast_error_positionのサポートを追加しました。詳細については、OracleDeveloper'sBuilt-inPackageGuide のデータベース互換性を参照してください。
制限事項¶
次の表は、PostgreSQLのさまざまなハード制限を示しています。ただし、絶対的なハード制限に達する前に、パフォーマンス制限や使用可能なディスク容量などの実際的な制限が適用される場合があります。
アイテム |
上限 |
コメント |
データベースサイズ |
無制限 |
|
データベースの数 |
4,294,950,911 |
|
データベースごとの関係 |
1,431,650,303 |
|
関係サイズ |
32TB |
デフォルトのBLCKSZは8192バイトです |
テーブルごとの行 |
4,294,967,295ページに収まるタプルの数によって制限されます |
|
テーブルごとの列 |
1600 |
単一ページ上のタプルサイズのフィッティングによりさらに制限されます。以下の注を参照 |
フィールドサイズ |
1GB |
|
識別子の長さ |
63バイト |
PostgreSQLを再コンパイルすることで増やすことができます |
テーブルごとのインデックス |
無制限 |
データベースごとの最大リレーションによる制約 |
インデックスごとの列 |
32 |
PostgreSQLを再コンパイルすることで増やすことができます |
パーティションキー |
32 |
PostgreSQLを再コンパイルすることで増やすことができます |
注釈
格納されるタプルは単一の8192バイトのヒープページに収まる必要があるため、テーブルの列の最大数はさらに削減されます。たとえば、タプルヘッダーを除外すると、1600の int 列で構成されるタプルは6400バイトを消費し、ヒープページに格納できますが、1600の bigint 列のタプルは12800バイトを消費するため、内部に収まりませんヒープページ。 text 、 varchar 、 char などのタイプの可変長フィールドは、値が必要な大きさの場合、テーブルの TOAST テーブルに値を行外に格納できます。テーブルのヒープ内のタプル内に残るのは18バイトのポインターのみです。短い可変長フィールドの場合、4バイトまたは1バイトのフィールドヘッダーが使用され、値はヒープタプル内に格納されます。
注釈
テーブルから削除された列も、最大列制限に寄与します。さらに、新しく作成されたタプルのドロップされた列の値は、タプルのnullビットマップでnullとして内部的にマークされますが、nullビットマップはスペースも占有します。