プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
12cリリース1 (12.1)
B71278-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

EXPLAIN WORK

用途

EXPLAIN WORK文を使用すると、Oracle Automatic Storage Management (Oracle ASM)のディスク・グループ・リバランス操作に関連する作業の見積りを取得できます。

この文で、V$ASM_ESTIMATE動的パフォーマンス・ビューに1行挿入されます。この行には、リバランス操作で移動する必要がある見積り割当て単位数を表すNUMBER値、EST_WORKが含まれます。


関連項目:

  • ディスク・グループ・リバランス操作の詳細は、Oracle Automatic Storage Management管理者ガイドを参照してください。

  • V$ASM_ESTIMATE動的パフォーマンス・ビューの詳細は、Oracle Databaseリファレンスを参照してください。


前提条件

EXPLAIN WORK文を実行する場合、V$ASM_ESTIMATE動的パフォーマンス・ビューに行を挿入するための権限が必要です。

作業見積り取得の対象となるALTER DISKGROUP文を実行するための権限も必要です。

EXPLAIN WORK文により生成される作業見積りを表示する場合、V$ASM_ESTIMATE動的パフォーマンス・ビューを問い合せるための権限が必要です。

EXPLAIN WORK文はデータ操作言語(DML)文であり、データ定義言語(DDL)文ではありません。そのため、EXPLAIN WORK文で加えられた変更内容は暗黙的にコミットされません。V$ASM_ESTIMATEビューのEXPLAIN WORK文で生成された行を保存する場合は、この文を指定したトランザクションをコミットする必要があります。

構文

explain_work::=

explain_work.gifの説明が続きます。
図「explain_work.gif」の説明

セマンティクス

SET STATEMENT_ID句

V$ASM_ESTIMATEビューでこの文により作成された行にあるSTATEMENT_ID列の値を指定します。この値によって、これらの行をビューの中の他の行と区別できます。ビューに多数の作業見積りの行が含まれている場合は、必ず、STATEMENT_IDの値を指定します。この句を省略した場合、デフォルトでSTATEMENT_ID値がNULLに設定されます。

FOR statement

作業見積りの対象となるSQL文を指定します。次の句を含むALTER DISKGROUP文を指定できます。

  • add_disk_clause (1つ以上のデスクをディスク・グループに追加します)

  • disk_online_clause (1つ以上のディスクをオンラインにします)

  • drop_disk_clause (1つ以上のディスクをディスク・グループから削除します)

  • rebalance_diskgroup_clause (ディスク・グループをリバランスします)

  • replace_disk_clause (ディスク・グループの1つ以上のディスクを置換します)

  • resize_disk_clause (ディスク・グループのディスクをサイズ変更します)

  • undrop_disk_clause (ディスク・グループからのディスクの削除を取り消します)

EXPLAIN WORK文は、rebalance_diskgroup_clauseの発行時に発生する明示的ディスク・グループ・リバランス、またはその他の任意の句の発行時に発生する自動ディスク・グループ・リバランス中に移動する必要がある割当て単位数を見積もります。


関連項目:

これらの句の詳細は、ALTER DISKGROUPを参照してください。

次の文は、ディスク・グループdg1を明示的にリバランスするために必要な作業量を見積もります。結果の見積りは、V$ASM_ESTIMATEビューに挿入されます。

EXPLAIN WORK
  FOR ALTER DISKGROUP dg1 REBALANCE;

SELECT est_work FROM V$ASM_ESTIMATE;

EST_WORK
--------
5680

次の文は、ディスクの削除後にディスク・グループdg2を自動的にリバランスするために必要な作業量を見積もります。文はSTATEMENT_IDを指定し、これによりV$ASM_ESTIMATEビューで適切な作業見積りを問い合せることができます。

EXPLAIN WORK SET STATEMENT_ID='drop d0'
  FOR ALTER DISKGROUP dg2 DROP DISK d0;
Explained.

SELECT est_work FROM V$ASM_ESTIMATE
  WHERE STATEMENT_ID='drop d0';

EST_WORK
--------
426