前提条件
索引が自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER
ANY
INDEX
システム権限が必要です。
別のユーザーのスキーマでオンライン索引を再構築する場合は、CREATE
ANY
INDEX
およびCREATE
ANY
TABLE
システム権限が必要です。
MONITORING
USAGE
句を実行する場合は、索引は自分のスキーマ内に存在する必要があります。
ドメイン索引を変更する場合は、索引の索引タイプに対してEXECUTE
オブジェクト権限が必要です。
オブジェクト権限は、個々の索引パーティションまたはサブパーティションではなく、親索引に付与されている必要があります。
索引パーティションの変更、再作成または分割、索引サブパーティションの変更または再作成を行う場合は、表領域割当て制限が必要です。
構文
alter_index::=
(deallocate_unused_clause ::=、allocate_extent_clause ::=、shrink_clause::=、parallel_clause ::=、physical_attributes_clause ::=、logging_clause::=、rebuild_clause ::=、alter_index_partitioning ::=を参照)
(ODCI_parameters
については、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。)
(size_clause::=を参照)
(size_clause::=を参照)
(storage_clause::=を参照)
rebuild_clause ::=
(parallel_clause ::=、physical_attributes_clause ::=、key_compression::=、logging_clause::=を参照)
(ODCI_parameters
については、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。XMLIndex_parameters_clause
については、『Oracle XML DB開発者ガイド』を参照してください。)
(modify_index_default_attrs ::=、add_hash_index_partition ::=、modify_index_partition ::=、rename_index_partition::=、drop_index_partition ::=、split_index_partition::=、coalesce_index_partition ::=、modify_index_subpartition::=を参照)
modify_index_default_attrs ::=
(physical_attributes_clause ::=、logging_clause::=を参照)
(parallel_clause ::=を参照)
(parallel_clause ::=を参照)
(deallocate_unused_clause ::=、allocate_extent_clause ::=、physical_attributes_clause ::=、logging_clause::=、key_compression::=を参照)
(parallel_clause ::=を参照)
index_partition_description::=
(segment_attributes_clause::=、key_compression::=を参照)
segment_attributes_clause::=
(physical_attributes_clause ::=、logging_clause::=を参照)
(allocate_extent_clause ::=、deallocate_unused_clause ::=を参照)
セマンティクス
schema
索引が含まれているスキーマを指定します。schema
を指定しない場合、索引は自分のスキーマ内にあるとみなされます。
index
変更する索引の名前を指定します。
索引変更の制限事項: 索引の変更には、次の制限事項があります。
index
がドメイン索引である場合は、PARAMETERS
句、RENAME
句、rebuild_clause
(PARAMETERS
句の有無に関係なく)、parallel_clause
またはUNUSABLE
句のみ指定できます。その他のすべての句は無効です。
LOADING
またはFAILED
のマークが付いているドメイン索引は、変更または名前の変更ができません。索引にFAILED
のマークが付いている場合、REBUILD
句のみ指定できます。
関連項目: ドメイン索引のLOADING およびFAILED 状態については、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 |
deallocate_unused_clause
句を使用すると、索引の終わりの未使用領域の割当てを明示的に解除し、解放された領域が表領域内の他のセグメントで使用可能になります。
index
がレンジ・パーティションまたはハッシュ・パーティションである場合、各索引パーティションの未使用領域の割当てが解除されます。index
がコンポジット・パーティション表のローカル索引である場合、各索引サブパーティションの未使用領域の割当てが解除されます。
領域の割当て解除の制限事項: 領域の割当て解除には、次の制限事項があります。
この句は、一時表の索引に対して指定できません。
この句およびrebuild_clause
は、指定できません。
この句の詳細は、「deallocate_unused_clause」を参照してください。
KEEP integer KEEP
句を使用すると、割当てを解除した後に索引に残す、最高水位標を超えるバイト数を指定できます。残りのエクステント数がMINEXTENTS
より少ない場合、MINEXTENTS
は現行のエクステント数に設定されます。初期エクステントがINITIAL
より小さくなると、INITIAL
は初期エクステントの現行の値に設定されます。KEEP
を指定しないと、すべての未使用領域が解放されます。
この句の詳細は、「ALTER TABLE」を参照してください。
allocate_extent_clause
を使用すると、索引の新しいエクステントを明示的に割り当てることができます。ハッシュ・パーティション表のローカル索引に対して、新規エクステントが索引の各パーティションに割り当てられます。
エクステントの割当ての制限事項: この句は、一時表の索引、レンジ・パーティションまたはコンポジット・パーティション索引に対して指定できません。
この句の詳細は、「allocate_extent_clause」を参照してください。
この句を使用すると、索引セグメントを縮小化できます。ALTER
INDEX
... SHRINK
SPACE
COMPACT
を指定することは、ALTER
INDEX
... COALESCE
を指定することと同じです。
この句の詳細は、「CREATE
TABLE
」の「shrink_clause」を参照してください。
索引セグメントの縮小の制限事項: この句は、ビットマップ結合索引またはファンクション索引に対して指定できません。
PARALLEL
句を使用すると、索引の問合せおよびDMLに対するデフォルトの並列度を変更できます。
並列化する索引の制限事項: この句は、一時表の索引に対して指定できません。
この句の詳細は、「CREATE
TABLE
」の「parallel_clause」を参照してください。
physical_attributes_clause
を使用すると、非パーティション索引、パーティション索引のすべてのパーティションおよびサブパーティション、指定されたパーティション、または指定されたパーティションのすべてのサブパーティションに対するパラメータの値を変更できます。
索引の物理属性の制限事項: 索引の物理属性には、次の制限事項があります。
この句は、一時表の索引に対して指定できません。
索引の変更中は、PCTUSED
パラメータを指定できません。
PCTFREE
パラメータは、rebuild_clause
、modify_index_default_attrs
句またはsplit_index_partition
句の一部としてのみ指定できます。
storage_clause
storage_clause
を使用すると、非パーティション索引、索引パーティション、またはパーティション索引のすべてのパーティションの記憶域パラメータ、あるいはパーティション索引の記憶域パラメータのデフォルト値を変更できます。この句の詳細は、「storage_clause」を参照してください。
logging_clause
を使用すると、索引のロギング属性を変更できます。REBUILD
句も指定すると、この新しい設定は再構築操作に影響します。REBUILD
句でロギングに異なる値を指定した場合、索引および再構築操作のロギング属性として指定された最後のロギング値が使用されます。
索引セグメントには、実表の属性と異なるロギング属性、および同じ実表の他の索引セグメントと異なるロギング属性を指定できます。
索引のログの制限事項: この句は、一時表の索引に対して指定できません。
関連項目:
|
これらのキーワードは以前のリリースで非推奨になったもので、それぞれLOGGING
およびNOLOGGING
に置き換えられています。RECOVERABLE
およびUNRECOVERABLE
は、下位互換性のためにサポートされていますが、LOGGING
およびNOLOGGING
キーワードを使用することをお薦めします。
RECOVERABLE
は、パーティション表またはLOBの記憶特性の作成時には無効なキーワードです。UNRECOVERABLE
は、パーティション表または索引構成表の作成時には無効なキーワードです。また、CREATE
INDEX
のAS
副問合せ句を使用してのみ指定できます。
rebuild_clause
を使用すると、既存の索引、あるいはパーティションまたはサブパーティションのいずれかを再構築できます。索引にUNUSABLE
のマークが付いている場合、正常に再構築するとUSABLE
になります。ファンクション索引も使用可能にします。索引の基になるファンクションが存在しない場合、再構築文は正常に実行されません。
注意: 索引構成表の2次索引を再構築する場合、Oracle Databaseは、索引が作成されたときの論理ROWIDに含まれる主キー列を保持します。したがって、COMPATIBLE 初期化パラメータが10.0.0未満に設定された状態で索引が作成された場合、再構築された索引には、索引キーと、索引キーには含まれない表の主キー列が含まれます。COMPATIBLE 初期化パラメータが10.0.0以上に設定された状態で索引が作成された場合、再構築された索引には、索引キーと、索引キーに含まれる主キー列を含む、表のすべての主キー列が含まれます。 |
索引の再構築の制限事項: 索引の再構築には、次の制限事項があります。
一時表の索引は、再構築できません。
INVALID
のマークが付いているビットマップ索引は再構築できません。制約を削除してからそれを再作成する必要があります。
パーティション索引全体は、再構築できません。PARTITION
句で説明するとおり、各パーティションまたはサブパーティションを再構築する必要があります。
同じ文でdeallocate_unused_clause
とrebuild_clause
を指定することはできません。
索引全体(ALTER
INDEX
)またはパーティション(ALTER
INDEX
... MODIFY
PARTITION
)に対して、PCTFREE
パラメータ値を変更できません。ALTER
INDEX
文の他のすべての形式では、PCTFREE
を指定できます。
ドメイン索引の場合
指定できるのは、PARAMETERS
句(索引または索引のパーティション用)またはparallel_clause
のみです。その他の再構築の句は無効です。
索引にIN_PROGRESS
のマークが付いていない場合にのみ、索引を再構築できます。
索引にIN_PROGRESS
またはFAILED
のマーク、パーティションにIN_PROGRESS
のマークが付いていない場合にのみ、索引パーティションを再構築できます。
ローカル索引は再構築できませんが、ALTER
INDEX
... REBUILD
PARTITION
でローカル索引のパーティションを再構築できます。
ハッシュ・パーティションまたはハッシュ・サブパーティションのローカル索引に指定できるパラメータは、TABLESPACE
のみです。
遅延可能一意制約を適用するために使用されるオンライン索引は、再構築できません。
PARTITION
句を使用すると、索引の1つのパーティションを再構築できます。この句は、索引パーティションを別の表領域に移動したり、作成時の物理属性を変更するために使用できます。
ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
パーティションの再構築の制限事項: この句は、コンポジット・パーティション表のローカル索引に対して指定できません。かわりに、REBUILD
SUBPARTITION
句を使用してください。
関連項目: パーティションのメンテナンス操作については、『Oracle Database VLDBおよびパーティショニング・ガイド』および「使用禁止の索引パーティションの再構築例:」を参照してください。 |
SUBPARTITION
句を使用すると、索引の1つのサブパーティションを再構築できます。この句を使用して、索引サブパーティションを他の表領域に移動することもできます。TABLESPACE
を指定しないと、サブパーティションは同じ表領域に再構築されます。
ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
索引のサブパーティション変更の制限事項 サブパーティションに対して指定できるパラメータは、TABLESPACE
、ONLINE
およびparallel_clause
のみです。
索引ブロックのバイトを逆順に格納するかどうかを示します。
REVERSE
を指定すると、索引の再構築時に、索引ブロックのバイトが逆順で格納され、ROWIDが除外されます。
NOREVERSE
を指定すると、索引の再構築時に、逆順にせずに索引ブロックのバイトが格納されます。NOREVERSE
キーワードを指定せずにREVERSE
索引を再構築すると、再構築された索引は、逆キーの索引になります。
逆索引の制限事項: 逆索引には、次の制限事項があります。
ビットマップ索引または索引構成表は逆順には格納できません。
パーティションまたはサブパーティションに対して、REVERSE
またはNOREVERSE
を指定できません。
parallel_clause
parallel_clause
を使用すると、索引の再構築をパラレル化して索引自体の並列度を変更できます。その索引に対する後続のすべての操作は、次にデータ定義言語(DDL)文のparallel_clause
によって上書きされるまで、この句に指定された並列度で実行されます。次の例外があります。
索引を再構築する前にALTER
SESSION
DISABLE
PARALLEL
DDL
が指定されている場合は、索引がシリアルで再構築され、索引の並列度が1に変更されます。
索引を再構築する前にALTER
SESSION
FORCE
PARALLEL
DDL
が指定されている場合は、索引がパラレルで再構築され、索引の並列度がALTER
SESSION
文で指定された値に変更されます。値がない場合は、DEFAULT
に変更されます。
再構築された索引、索引パーティションまたは索引サブパーティションが格納される表領域を指定します。デフォルトは、再構築の前に索引またはパーティションが格納されていた表領域です。
COMPRESS
を指定すると、キー列値の繰返し項目を排除するキー圧縮が使用可能になります。integer
を使用して、接頭辞の長さ(圧縮する接頭辞列数)を指定します。
一意の索引の場合、接頭辞の長さの有効範囲は、1からキー列の数から1を引いた数までです。デフォルトの接頭辞の長さは、(キー列の数-1)です。
一意でない索引の場合、接頭辞の長さの有効範囲は、1からキー列の数までです。接頭辞の長さのデフォルト値は、キー列の数です。
Oracle Databaseでは、索引(一意でない索引または2列以上の一意索引)が圧縮されます。パーティション索引の圧縮を使用する場合、索引では圧縮が索引レベルで有効になっている必要があります。
NOCOMPRESS
を指定すると、キー圧縮を使用禁止にできます。これはデフォルトです。
キー圧縮の制限事項: COMPRESS
は、ビットマップ索引に対して指定できません。
ONLINE句
ONLINE
を指定すると、表またはパーティションのDML操作を索引の再構築中に可能にするかどうかを指定できます。
オンライン索引の制限事項: オンライン索引には、次の制限事項があります。
オンライン索引の作成中は、パラレルDMLはサポートされません。ONLINE
を指定し、続いてパラレルDML文を発行すると、Oracle Databaseはエラーを戻します。
ビットマップ結合索引またはクラスタ索引には、ONLINE
を指定できません。
索引構成表の一意でない2次索引の場合、索引構成表内の索引キー列の数と論理ROWIDの主キー列の数の合計は、32以下にする必要があります。論理ROWIDは、索引キーに含まれる列を除外します。
ALTER
INDEX
... REBUILD
操作をログに記録するかどうかを指定します。
この句の詳細は、「logging_clause」を参照してください。
この句は、トップレベルのALTER
INDEX
文およびrebuild_clause
のドメイン索引に対してのみ有効です。この句は、未解析のまま適切なODCI索引タイプ・ルーチンに渡されたパラメータ文字列を指定します。
パラメータ文字列の最大長は1,000文字です。
索引全体を変更または再構築する場合、文字列は索引レベルのパラメータを参照する必要があります。索引のパーティションを再構築する場合、文字列はパーティション・レベルのパラメータを参照する必要があります。
index
にUNUSABLE
のマークが付いている場合、パラメータを変更するのみではUSABLE
にはなりません。UNUSABLE
のマークが付いた索引を使用可能にするには、その索引を再構築する必要があります。
Oracle Textがインストール済の場合、Oracle Text固有のパラメータを使用するOracle Textのドメイン索引を再構築することができます。パラメータの詳細は、『Oracle Textリファレンス』を参照してください。
PARAMETERS句の制限事項: index
にIN_PROGRESS
またはFAILED
のマークが付いておらず、IN_PROGRESS
のマークが付いた索引パーティションが存在せず、変更対象のパーティションにFAILED
のマークが付いていない場合にのみ、索引パーティションを変更できます。
関連項目:
|
XMLIndex_parameters_clause
この句は、XMLIndex索引に対してのみ有効です。この句は、XMLIndex実装を定義するパラメータ文字列を指定します。
パラメータ文字列の最大長は1,000文字です。
索引全体を変更または再構築する場合、文字列は索引レベルのパラメータを参照する必要があります。索引のパーティションを再構築する場合、文字列はパーティション・レベルのパラメータを参照する必要があります。
index
にUNUSABLE
のマークが付いている場合、パラメータを変更するのみではUSABLE
にはなりません。UNUSABLE
のマークが付いた索引を使用可能にするには、その索引を再構築する必要があります。
関連項目: XMLIndex_parameters_clause の構文およびセマンティクスを含むXMLIndex の詳細は、『Oracle XML DB開発者ガイド』を参照してください。 |
XMLIndex_paramaters_clauseの制限事項: index
にIN_PROGRESS
またはFAILED
のマークが付いておらず、IN_PROGRESS
のマークが付いた索引パーティションが存在せず、変更対象のパーティションにFAILED
のマークが付いていない場合にのみ、索引パーティションを変更できます。
COMPILE句
この句は、ドメイン索引に対してのみ有効です。この句を使用すると、無効なドメイン索引を明示的に再コンパイルできます。この句は、主に、システム管理されたドメイン索引をサポートするように基礎となる索引タイプが変更され、その結果として既存のドメイン索引がINVALID
とマークされた場合に有効です。これにより、このALTER
INDEX
文によって、ドメイン索引はユーザー管理されたドメイン索引からシステム管理されたドメイン索引に移行されます。
関連項目: システム管理されたドメイン索引の作成の詳細は、「CREATE INDEXTYPE 」の「storage_table_clause」および『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 |
ENABLE
は、使用禁止になったファンクション索引(ALTER
INDEX
... DISABLE
文によって使用禁止になったものか、その索引で使用されるユーザー定義ファンクションが削除または置換されたために使用禁止になったもののいずれか)にのみ適用されます。次の条件が該当する場合、この句によって、このような索引が使用可能になります。
ファンクションが現在有効な場合
現行のファンクションのシグネチャが、索引が作成された場合のファンクションのシグネチャと一致する場合
ファンクションに現在DETERMINISTIC
のマークが付いている場合
ファンクション索引の使用可能化の制限事項: ENABLE
句には、次の制限事項があります。
ENABLE
と同じ文内では、ALTER
INDEX
の他の句の指定はできません。
この句は、一時表の索引に対して指定できません。かわりに、その索引を削除し、再作成する必要があります。DBMS_METADATA
パッケージを使用して、その索引の作成DDLを取得できます。
DISABLE
は、ファンクション索引のみに適用されます。この句を使用してファンクション索引を使用禁止にします。たとえば、ファンクションの本体を処理する場合に、これを行います。その後、ENABLE
キーワードを使用して、索引を再構築、または別のALTER
INDEX
文を指定できます。
索引、索引パーティションまたは索引サブパーティションにUNUSABLE
のマークを付けるには、UNUSABLE
を指定します。索引、索引パーティションまたは索引サブパーティションにUNUSABLE
のマークを付けると、そのオブジェクトに割り当てられていた領域はすぐに解放されます。使用禁止の索引を使用可能にする場合、再構築するか、または削除して再作成する必要があります。1つのパーティションにUNUSABLE
のマークが付いている場合も、同じ索引の他のパーティションは有効です。その索引を必要とする文が使用禁止のパーティションにアクセスしない場合、その文を実行できます。また、使用禁止のパーティションは、分割または名前を変更してから再構築できます。詳細は、「CREATE
INDEX
」の「UNUSABLE」を参照してください。
索引への使用禁止のマーク付けの制限事項: この句は、一時表の索引に対して指定できません。
この句を使用すると、オプティマイザで索引を参照可能にするかどうかを指定できます。この句の詳細は、「CREATE
INDEX
」の「VISIBLE | INVISIBLE」を参照してください。
この句を指定すると、索引の名前を変更できます。new_index_name
は単一の識別子で、スキーマ名は含まれません。
索引の名前の変更の制限事項: ドメイン索引の場合、index
およびindex
のパーティションにIN_PROGRESS
またはFAILED
のマークが付いていると無効になります。
COALESCE
を指定すると、ブロックを再利用するために、索引ブロックの内容を空きブロックにマージできます(可能な場合)。
索引ブロックの結合の制限事項: 索引ブロックの結合には、次の制限事項があります。
この句は、一時表の索引に対して指定できません。
この句は、索引構成表の主キー索引に対して指定できません。かわりにALTER
TABLE
のCOALESCE
句を使用します。
関連項目:
|
MONITORING USAGE | NOMONITORING USAGE
この句を使用すると、索引の使用を監視するかどうかを決定できます。
MONITORING
USAGE
を指定すると、索引の監視が開始されます。まず、索引の使用に関する既存の情報が削除され、ALTER
INDEX
... NOMONITORING
USAGE
文が次に実行されるまで、索引の使用が監視されます。
NOMONITORING
USAGE
を指定すると、索引の監視を終了できます。
このALTER
INDEX
... NOMONITORING
USAGE
文が発行された後、索引が使用されたかどうかを調べるには、V$OBJECT_USAGE
動的パフォーマンス・ビューのUSED
列を問い合せます。
関連項目: データ・ディクショナリおよび動的パフォーマンス・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
UPDATE
BLOCK
REFERENCES
句は、索引構成表の通常のドメイン索引に対してのみ有効です。この句を指定すると、主キーによって識別されるブロックの適切なデータベース・アドレスとともに索引行の一部として格納され、失効したと推測されるすべてのデータ・ブロック・アドレスを更新することができます。
ドメイン索引では、AlterIndexUpdBlockRefs
に設定されたalter_option
パラメータでODCIIndexAlter
ルーチンが実行されます。このルーチンはカートリッジ・コードを使用可能にし、失効したと推測される索引のデータ・ブロック・アドレスを更新します。
UPDATE BLOCK REFERENCESの制限事項: この句をALTER
INDEX
の他の句と組み合せることはできません。
ALTER
INDEX
文のパーティション化句は、パーティション索引に対してのみ有効です。
ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
索引のパーティション変更の制限事項: 索引のパーティション変更には、次の制限事項があります。
これらの句は、一時表の索引に対して指定できません。
ベース索引に対するいくつかの操作を1つのALTER
INDEX
文にまとめることはできますが(RENAME
およびREBUILD
は除く)、パーティション操作を、他のパーティション操作またはベース索引に対する操作と組み合せることはできません。
パーティション索引のデフォルト属性に新しい値を指定します。
パーティションのデフォルト属性の変更の制限事項: ハッシュ・パーティション・グローバル索引またはハッシュ・パーティション表の索引の属性には、TABLESPACE
のみを指定できます。
TABLESPACE 索引の新規パーティション、または索引パーティションのサブパーティションに対して、デフォルトの表領域を指定します。
logging_clause パーティション索引または索引パーティションのデフォルトのロギング属性を指定します。
この句の詳細は、「logging_clause」を参照してください。
FOR PARTITION FOR
PARTITION
句を使用すると、コンポジット・パーティション表にあるローカル索引のパーティションのサブパーティションに対して、デフォルトの属性を指定できます。
FOR PARTITIONの制限事項: リスト・パーティションに対してFOR
PARTITION
を指定することはできません。
この句を使用すると、ハッシュ・パーティション・グローバル索引にパーティションを追加できます。Oracle Databaseは、ハッシュ・パーティションを追加し、ハッシュ・ファンクションによって索引の既存のハッシュ・パーティションから再ハッシュされた索引エントリをそのハッシュ・パーティションに移入します。パーティション名を省略すると、SYS_P
n
の形式でパーティション名が割り当てられます。TABLESPACE
句を省略すると、その索引に対して指定された表領域にパーティションが配置されます。索引の表領域が指定されていない場合、パーティションは、ユーザーのデフォルトの表領域(指定されている場合)またはシステムのデフォルトの表領域に配置されます。
modify_index_partition
句を使用すると、索引パーティションpartition
またはそのサブパーティションの実物理属性、ロギング属性または記憶特性を変更できます。ハッシュ・パーティション・グローバル索引の場合、この句に指定できる副次句はUNUSABLE
のみです。
COALESCE この句を指定すると、ブロックを再利用するために、索引パーティション・ブロックの内容を空きブロックにマージできます(可能な場合)。
UPDATE BLOCK REFERENCES UPDATE
BLOCK
REFERENCES
句は、索引構成表の通常の索引に対してのみ有効です。この句を使用すると、2次索引パーティションに格納されている、失効したと推測されるすべてのデータ・ブロック・アドレスを更新することができます。
UPDATE BLOCK REFERENCESの制限事項: この句には、次の制限事項があります。
ハッシュ・パーティション表の索引に対して、physical_attributes_clause
を指定することはできません。
ALTER
INDEX
の他の句とともに、UPDATE
BLOCK
REFERENCES
を指定することはできません。
注意: 索引がコンポジット・パーティション表のローカル索引である場合、ここで指定した変更は、以前に索引のサブパーティションに対して指定した属性を上書きします。また、そのパーティションに対して今後作成されるサブパーティションの属性値のデフォルト値となります。サブパーティションの属性はそのままで、パーティションのデフォルトの属性を変更するには、ALTER TABLE ... MODIFY DEFAULT ATTRIBUTES FOR PARTITION を使用します。 |
UNUSABLE句 索引パーティションに対するこの句の機能は、索引全体の場合と同じです。詳細は、「UNUSABLE」を参照してください。
key_compression この句が意味を持つのは、コンポジット・パーティション索引に対してのみです。この句を使用すると、パーティションおよびそのパーティションのすべてのサブパーティションの圧縮属性を変更できます。パーティション内の各索引サブパーティションの状態は自動的にUNUSABLE
と設定されるため、これらのサブパーティションを再構築する必要があります。パーティションに対してキー圧縮を指定するには、表に対してキー圧縮が指定されている必要があります。この句は、パーティション・レベルでのみ指定できます。個々のサブパーティションの圧縮属性を変更することはできません。
非コンポジット索引パーティションにもこの句を指定できます。ただし、非コンポジット・パーティションには、再構築と圧縮属性の設定を1つの手順で行うrebuild_clause
を使用する方が効率的です。
rename_index_partition
句を使用すると、索引パーティションまたはサブパーティション
の名前を
new_name
に変更できます。
索引パーティションの名前の変更の制限事項: 索引パーティションの名前の変更には、次の制限事項があります。
リスト・パーティションのサブパーティションは名前を変更できません。
ドメイン索引のパーティションの場合、index
にIN_PROGRESS
またはFAILED
のマークを付けることはできません。また、パーティションにIN_PROGRESS
、名前を変更するパーティションにFAILED
のマークを付けることはできません。
drop_index_partition
句を使用すると、グローバル・パーティション索引からパーティションとその中のデータを削除できます。グローバル索引のパーティションを削除する場合、その索引の次のパーティションにUNUSABLE
のマークが付けられます。グローバル索引の最上位のパーティションは削除できません。
split_index_partition
句を使用すると、レンジ・パーティション・グローバル索引のパーティションを2つのパーティションに分割し、新しいパーティションを索引に追加できます。この句は、ハッシュ・パーティション・グローバル索引に対しては無効です。かわりに、add_hash_index_partition
句を使用してください。
UNUSABLE
のマークが付いたパーティションを分割すると、2つのパーティションが生成されますが、その両方にUNUSABLE
のマークが付けられます。このようなパーティションは、使用前に再構築する必要があります。
使用可能なパーティションを分割した場合、索引データが入っている2つのパーティションが生成されます。両方の新規パーティションは使用可能です。
AT句 split_partition_1
に新しい上限(境界は含まない)を指定します。value_list
の値は、partition_name_old
の分割前のパーティション境界より小さく、その次の最小のパーティション(そのようなパーティションがある場合)のパーティション境界より大きい値である必要があります。
INTO句 分割の結果、生成される2つのパーティションの名前と物理属性を任意に指定します。
この句は、ハッシュ・パーティション・グローバル索引に対してのみ有効です。索引パーティションの数が1つ減少します。結合するパーティションは、ハッシュ・ファンクションの要件に基づいて選択されます。この句を使用するのは、選択されたパーティションの索引エントリを残りのパーティションのいずれかに分散した後で、その選択されたパーティションを削除する場合です。
modify_index_subpartition
句を使用すると、コンポジット・パーティション表にあるローカル索引のサブパーティションに対する領域のUNUSABLE
のマーク付け、割当てまたは割当て解除が可能になります。このようなサブパーティションの他のすべての属性は、パーティション・レベルのデフォルトの属性から継承されます。
例
索引ブロックの逆順格納例: 次の文は、索引ブロックのバイトが逆順に格納されるように、索引ord_customer_ix
(「索引の作成例:」で作成)を再構築します。
ALTER INDEX ord_customer_ix REBUILD REVERSE;
索引のパラレル再構築例: 次の文は、パラレル実行プロセスを使用して、既存の索引のスキャンおよび新しい索引の構築を行い、既存の索引から索引を再構築します。
ALTER INDEX ord_customer_ix REBUILD PARALLEL;
索引の実属性の変更例: 次の文は、同じ索引に将来追加されるデータ・ブロックが、5つの初期トランザクション・エントリを使用するように、索引oe.cust_lname_ix
を変更します。
ALTER INDEX oe.cust_lname_ix INITRANS 5;
索引oe.cust_lname_ix
がパーティション化されている場合、この文は将来追加される索引のパーティションのデフォルト属性も変更します。将来追加されるパーティションでは、5つの初期トランザクション・エントリと100KBの増分エクステントが使用されます。
パラレル問合せを使用可能にする例: 次の文は、索引upper_ix
(「ファンクション索引の作成例:」で作成)に対するスキャンがパラレル化されるように、索引のパラレル属性を設定します。
ALTER INDEX upper_ix PARALLEL;
索引の名前の変更例: 次の文は、索引の名前を変更します。
ALTER INDEX upper_ix RENAME TO upper_name_ix;
索引への使用禁止のマーク付けの例: 次の文は、cost_ix
索引(「レンジ・パーティション・グローバル索引の作成例:」で作成)を使用します。この索引のパーティションp1
は、「索引パーティションの削除例:」で削除されています。最初の文は、索引パーティションp2
にUNUSABLE
のマークを付けます。
ALTER INDEX cost_ix MODIFY PARTITION p2 UNUSABLE;
次の文は、索引cost_ix
全体にUNUSABLE
のマークを付けます。
ALTER INDEX cost_ix UNUSABLE;
使用禁止の索引パーティションの再構築例: 次の文は、cost_ix
索引のパーティションp2
およびp3
を再構築し、索引をもう一度使用可能にします。パーティションp3
の再構築はログに記録されません。
ALTER INDEX cost_ix REBUILD PARTITION p2; ALTER INDEX cost_ix REBUILD PARTITION p3 NOLOGGING;
MAXEXTENTSの変更例: 次の文は、パーティションp3
のエクステントの最大数を変更し、ロギング属性を変更します。
/* This example will fail if the tablespace in which partition p3 resides is locally managed. */ ALTER INDEX cost_ix MODIFY PARTITION p3 STORAGE(MAXEXTENTS 30) LOGGING;
索引パーティションの名前の変更例: 次の文は、cost_ix
索引(「レンジ・パーティション・グローバル索引の作成例:」で作成)の索引パーティションの名前を変更します。
ALTER INDEX cost_ix RENAME PARTITION p3 TO p3_Q3;
パーティションの分割例: 次の文は、索引cost_ix
のパーティションp2
(「レンジ・パーティション・グローバル索引の作成例:」で作成)をp2a
とp2b
に分割します。
ALTER INDEX cost_ix SPLIT PARTITION p2 AT (1500) INTO ( PARTITION p2a TABLESPACE tbs_01 LOGGING, PARTITION p2b TABLESPACE tbs_02);
索引パーティションの削除例: 次の文は、cost_ix
索引から索引パーティションp1
を削除します。
ALTER INDEX cost_ix DROP PARTITION p1;
デフォルト属性の変更例: 次の文は、ローカル・パーティション索引prod_idx
(「ハッシュ・パーティション表の索引の作成例:」で作成)のデフォルトの属性を変更します。将来追加されるパーティションでは、5つの初期トランザクション・エントリが使用されます。
ALTER INDEX prod_idx MODIFY DEFAULT ATTRIBUTES INITRANS 5;