physical_attributes_clause
目的
physical_attributes_clause
を使用すると、PCTFREE
、PCTUSED
およびINITRANS
パラメータの値、および表、クラスタ、索引またはマテリアライズド・ビューの記憶特性を指定できます。
physical_attributes_clause
は次の文に指定できます。
-
CREATE
CLUSTER
およびALTER
CLUSTER
: クラスタおよびクラスタ内のすべての表の物理属性を設定または変更する場合(「CREATE CLUSTER」および「ALTER CLUSTER」を参照)。 -
CREATE
TABLE
: 表、表パーティション、オブジェクト表のOIDINDEX
または索引構成表のオーバーフロー・セグメントの物理属性を設定する場合(「CREATE TABLE」を参照) -
ALTER
TABLE
: 表の物理属性、将来追加される表パーティションのデフォルトの物理属性、または既存の表パーティションの物理属性を変更する場合(「ALTER TABLE」を参照)。次の制限があります。-
物理属性は、一時表には指定できません。
-
物理属性は、クラスタ化表には指定できません。クラスタ内の表はクラスタの物理属性を継承します。
-
-
CREATE
INDEX
: 索引または索引パーティションの物理属性を設定する場合(「CREATE INDEX」を参照) -
ALTER
INDEX
: 索引の物理属性、将来追加される索引パーティションのデフォルトの物理属性、または既存の索引パーティションの物理属性を変更する場合(「ALTER INDEX」を参照) -
CREATE
MATERIALIZED
VIEW
: マテリアライズド・ビュー、そのパーティションの1つ、またはマテリアライズド・ビューを保持するために生成される索引の物理属性を設定する場合(「CREATE MATERIALIZED VIEW」を参照) -
ALTER
MATERIALIZED
VIEW
: マテリアライズド・ビューの物理属性、将来追加されるパーティションのデフォルトの物理属性、および既存のパーティション、またはマテリアライズド・ビューを保持するために作成される索引の物理属性を変更する場合(「ALTER MATERIALIZED VIEW」を参照) -
CREATE
MATERIALIZED
VIEW
LOG
およびALTER
MATERIALIZED
VIEW
LOG
: マテリアライズド・ビュー・ログの物理属性を設定または変更する場合(「CREATE MATERIALIZED VIEW LOG」および「ALTER MATERIALIZED VIEW LOG」を参照)。
構文
セマンティクス
この項では、physical_attributes_clause
のパラメータについて説明します。詳細は、特定のデータベース・オブジェクトに対してこれらのパラメータを設定または再設定するSQL文の説明を参照してください。
データベース・オブジェクトの各データ・ブロック内で、オブジェクトの行を将来更新するために確保しておく領域の割合を表す整数値を指定します。PCTFREE
の値は、0から99の値にする必要があります。値に0を指定した場合は、ブロック全体が一杯になるまで新しい行を挿入できます。デフォルト値は10です。10を指定した場合、既存の行に対して行われる更新用に各ブロックの10%が確保されるため、各ブロックでは最大90%まで表に新しい行を挿入できます。
PCTFREE
は、表、パーティション、クラスタ、索引、マテリアライズド・ビュー、マテリアライズド・ビュー・ログおよびゾーン・マップを作成および変更する文の中で同様に機能します。PCTFREE
とPCTUSED
の組合せによって、新しい行を既存のデータ・ブロックと新しいデータ・ブロックのどちらに挿入するかが決まります。「PCTFREEとPCTUSEDの連携」を参照してください。
PCTFREE句の制限事項
索引を変更する場合は、このパラメータをmodify_index_default_attrs
句およびsplit_index_partition
句でのみ指定できます。
使用済領域のうち、データベース・オブジェクトのデータ・ブロックごとに確保される最小限の割合を表す整数値を指定します。PCTUSED
は0から99までの正の整数で指定し、デフォルト値は40です。
PCTUSED
は、表、パーティション、クラスタ、マテリアライズド・ビュー、マテリアライズド・ビュー・ログおよびゾーン・マップを作成および変更する文の中で同様に機能します。
PCTUSED
は、索引構成表には無効な表記憶特性です。
PCTFREE
およびPCTUSED
の合計は100以下である必要があります。PCTFREE
とPCTUSED
をともに使用して、データベース・オブジェクト内の領域を効果的に利用できます。「PCTFREEとPCTUSEDの連携」を参照してください。
PCTUSED句の制限事項
PCTUSED
パラメータには、次の制限事項があります。
-
このパラメータは、索引または索引構成表の索引セグメントには指定できません。
-
このパラメータは、自動セグメント領域管理のオブジェクトに対しては有効ではなく、無視されます。
関連項目:
PCTUSED
およびPCTFREE
の各値によるパフォーマンスへの効果については『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。自動セグメント領域管理については「CREATE
TABLESPACE
」の「segment_management_clause」を参照してください。
PCTFREEとPCTUSEDの連携
新しく割り当てられたデータ・ブロックでは、挿入に使用できる領域は、ブロック・サイズからブロック・オーバーヘッドと空き領域(PCTFREE
)の合計を引いたものになります。既存のデータを更新する場合は、ブロック内の任意の利用可能な領域を使用できます。このため、更新によってブロックの利用可能な領域がPCTFREE
より小さくなる可能性があります。
データ・ブロックがPCTFREE
によって決定された制限に達すると、そのブロックの割合(パーセント)がパラメータPCTUSED
を下回るまで、ブロックに新しい行は挿入はできないとOracle Databaseによって判断されます。この値になるまで、Oracle Databaseでは、データ・ブロックにすでに含まれている行の更新にのみデータ・ブロックの空き領域が使用されます。ブロックは、使用済領域がPCTUSED
の値を下回ると、行挿入の対象となります。
関連項目:
PCTUSED
およびPCTFREE
による空きリストのセグメント領域管理処理の詳細は、「FREELISTS」を参照してください。
データベース・オブジェクトに割り当てられた各データ・ブロックに割り当てられる、同時実行トランザクション・エントリの初期数を指定します。この値の範囲は1から255で、デフォルト値は1ですが、次の例外があります。
-
クラスタの
INITRANS
のデフォルト値は、クラスタが存在する表領域のINITRANS
のデフォルト値と2のいずれか大きい方の値です。 -
索引のデフォルト値は2です。
通常、INITRANS
値は、変更せずにデフォルトのまま使用してください。
ブロックを更新するトランザクションごとに、ブロックのトランザクション・エントリが必要です。このパラメータを指定した場合、最小数の同時実行トランザクションでブロックを更新できます。さらに、トランザクション・エントリを動的に割り当てるときのオーバーヘッドを回避できます。
INITRANS
パラメータは、表、パーティション、クラスタ、索引、マテリアライズド・ビューおよびマテリアライズド・ビュー・ログを作成および変更する文の中で同様に機能します。
MAXTRANS
は、セグメント内の各データ・ブロックで実行可能な同時実行更新トランザクションの最大数を決定する以前のリリースのパラメータです。このパラメータは現在非推奨になっています。今回のリリースでは、Oracleは、ブロック内の未使用領域に応じて、任意のデータ・ブロックに対して最大255の同時実行更新トランザクションを自動的に許可します。同時更新トランザクションの最大数は、ブロックのサイズに基づいていることに注意してください
MAXTRANS
値が設定された既存のオブジェクトは、その設定を保持します。ただし、MAXTRANS
値を変更しようとすると、新しい指定は無視され、エラーを戻さずに値は255に置き換えられます。
storage_clause
storage_clause
によって、表、オブジェクト表OIDINDEX
、パーティション、LOBデータ・セグメントまたは索引構成表のオーバーフロー・データ・セグメントの記憶特性を指定できます。この句は、大規模な表のパフォーマンスに影響します。記憶域は、追加領域の動的割当てを最小限に抑えるように割り当てられます。詳細は、「storage_clause」を参照してください。