A.3 論理データベースの制限

この表では、論理データベース項目の制限のタイプと制限値について説明します。

項目 制限のタイプ 制限値

1表当たりの最大数

1000

索引(またはクラスタ化された索引)当たりの最大値

32

ビットマップ索引当たりの最大値

30

制約

1列当たりの最大数

定義なし

Oracleでは、1列当たりの制約数の制限は定義されていません。ただし、制約には、データベースの制約の最大数の制限があります。この表の制約 - 1データベース当たりの最大値のエントリを参照してください。

制約

1データベース当たりの最大値

4,294,967,293

制約には、1から4,294,967,294までの番号が内部的に付けられます。内部番号は、制約が作成されるたびに増分され、番号はリサイクルされません。1つの番号が常に_NEXT_CONSTRAINTという特別な内部ユーザーによって使用されます。これは、新しい制約に使用できる次の番号を表します。したがって、データベースの存続期間中に作成できる制約の最大数は4,294,967,293です。

制約番号を表示するには、SYS.CON$表のCON#列を問い合せます。

データベースが制約制限に達し、さらに制約を作成する場合は、Oracleサポートに連絡してください。

ディクショナリ管理データベース・オブジェクト

1データベース当たりの最大値

4,254,950,911 - オーバーヘッド

  • 値4,254,950,911は、次のように導出されます: オブジェクト識別子に使用されるデータ型には、最大値4,294,967,294を格納できます。ただし、これらの値のうち約4,000万は、他の目的で上位に予約されているため、オブジェクト識別子の最大値は4,254,950,911になります。

  • オーバーヘッドには次が含まれます:

    • 1つのデータベース・オブジェクトに対する複数のオブジェクト識別子

      データベース・オブジェクトは、作成時に1つのオブジェクト識別子を使用します。この識別子は、ALL_OBJECTSビューのOBJECT_ID列とDATA_OBJECT_ID列の両方に表示されます。オブジェクトの存続期間中、OBJECT_IDの値は変更されませんが、DATA_OBJECT_IDの値は、DDL文や表の切捨てなどでオブジェクトが変更されると変更されます。したがって、1つのオブジェクトは、その存続期間中に複数のオブジェクト識別子を使用することがあります。

    • 軽量ジョブ用のオブジェクト識別子

      軽量ジョブは、永続オブジェクトではない場合でも、オブジェクト識別子を使用します。したがって、データベース内で多数の軽量ジョブが実行されている場合、データベースに作成できるオブジェクトの数は、残りの識別子のプールによって決まります。

索引

1表当たりの最大数

定義なし

Oracleでは、表当たりの索引数の制限は定義されていません。ただし、索引には、データベースごとに許可されるディクショナリ管理データベース・オブジェクトの最大数の制限があります。この表のディクショナリ管理データベース・オブジェクトのエントリを参照してください。

索引

索引になっている列の合計サイズ

データベースのブロック・サイズの約75%から多少のオーバーヘッドを引いた値

パーティション

線形パーティション化キーの最大長

4KB - オーバーヘッド

パーティション

パーティション化キーを構成する列の最大数

16列

パーティション

1表または1索引当たりのパーティションの最大数

1024K - 1

1表当たりの最大数

定義なし

ストアド・パッケージ

最大サイズ

6,000,000行のコード。

関連項目: 詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください

サブパーティション

コンポジット・パーティション表のサブパーティションの最大数

1024K - 1

副問合せ

SQL文内の副問合せの最大レベル

WHERE句では255の副問合せ

トップレベル問合せのFROM句内の副問合せについては、制限は定義されていません

システム変更番号(SCN)

最大値

263 - 248 = 9,223,090,561,878,065,152 SCN

クラスタ化表の1表当たりの最大数

32表

1データベース当たりの最大値

定義なし

Oracleでは、データベース当たりの表数の制限は定義されていません。ただし、表には、データベースごとに許可されるディクショナリ管理データベース・オブジェクトの最大数の制限があります。この表のディクショナリ管理データベース・オブジェクトのエントリを参照してください。

ユーザーおよびロール

最大値

2,147,483,638

ユーザーおよびロールには、0から2,147,483,638までの番号が内部的に付けられます。内部番号は、ユーザーまたはロールが作成されるたびに増分され、番号はリサイクルされません。1つの番号が常に_NEXT_USERという特別な内部ユーザーによって使用されます。これは、新しいユーザーまたはロールに使用できる次の番号を表します。したがって、データベースの存続期間中に作成できるユーザーおよびロールの最大数は2,147,483,638です。

ユーザーおよびロールの番号を表示するには、SYS.USER$表のUSER#列を問い合せます。

ノート:

SQL文の存続期間に関する制限は、データベース構成、ディスク領域、メモリーなど、多くの要因に応じて異なることがあります。

ノート:

オブジェクト・インスタンスがメモリー内にある場合、オブジェクトの属性数に関する一定の制限はありません。ただし、オブジェクト・インスタンスで消費されるメモリーの最大合計量は4GBです。表にオブジェクト・インスタンスが挿入されると、属性は表の別々の列に展開され、Oracleの1000列の制限が適用されます。