作業負荷統計を有効にし、統計情報を収集している場合、システム表RDB$WORKLOADが作成され、情報が格納されます。(詳細は、第1.15節を参照してください。)データベースのデータについて詳細な知識がある場合、または作業負荷統計が使用されていない問合せについて収集されている場合、Oracle RMUで特定の列グループの統計情報を収集する必要がないと判断できます。RMU Delete Optimizer_Statisticsでは、RDB$WORKLOADシステム表の列グループのレコードを選択して削除できる機能が提供されます。RMU Delete Optimizer_Statisticsコマンドを使用した場合、オプティマイザ統計情報自体、および列の重複係数とNULL係数への参照の両方が、RDB$WORKLOADシステム表から削除されます。
RMU Delete Optimizer_Statisticsコマンドを発行した後はRMU Collect Optimizer_Statisticsコマンドを発行しても、指定した列グループの統計情報は収集されません。
root-file-spec
オプティマイザ統計情報を削除するデータベースを指定します。デフォルトのファイル・タイプは.rdbです。
Column_Group=(column-list)
1つの列グループを構成している列のリストを指定します。指定する列は、Tables=(table-list)修飾子で指定する表に対して有効な列グループです。(有効な列グループを表示するには、RMU Show Optimizer_Statisticsコマンドを使用します。)Column_Group修飾子を指定した場合、指定した列グループのデータを含むRDB$WORKLOADシステム表のレコード全体が削除されます。このため、次にRMU Collect Optimizer_Statisticsコマンドを発行しても、指定した列グループの統計情報は収集されません。Log
Nolog
Log=file-name
RDB$WORKLOADシステム表から削除する統計情報を記録するかどうかを指定します。SYS$OUTPUTに情報を出力する場合は、Log修飾子を指定します。情報をファイルに出力する場合は、Log=file-spec修飾子を指定します。情報を出力しない場合は、Nolog修飾子を指定します。どの種のLog修飾子も指定しない場合、デフォルトはDCL検証スイッチの現在の設定です。(DCL SET VERIFYコマンドでDCL検証スイッチを制御します。)Tables=(table-list)
列グループのエントリが削除される表を、次のように指定します。
- Tables=(table-list)修飾子を指定し、Column_Group修飾子を指定しない場合、リストした表に対するすべての列グループのエントリがRDB$WORKLOADシステム表から削除されます。
- Tables=(table-list) 修飾子を指定し、Column_Group=(column-list)修飾子を指定した場合、指定した表に対する作業負荷統計エントリのうち指定した列グループを持つものがRDB$WORKLOADシステム表から削除されます。
- Tables修飾子にアスタリスク(*)を使用した(Tables=*)場合、RDB$WORKLOAD表に登録されているすべての表が削除されます。これによって、RDB$WORKLOAD表がパージされます。
作業負荷列グループをRDB$WORKLOADシステム表から削除した後でRMU Collect Optimizer_Statisticsコマンドを発行しても、その統計情報は収集されません。
Tables=(table-list)修飾子は必須修飾子です。Tables=(table-list)修飾子を指定せずにRMU Delete Optimizer_Statisticsコマンドを発行することはできません。
- データベースに対してRMU Delete Optimizer_Statisticsコマンドを使用するには、データベースのルート・ファイル・アクセス制御リスト(ACL)にRMU$ANALYZE権限を持っているか、OpenVMSのSYSPRVまたはBYPASS権限を持っている必要があります。
- カーディナリティ統計は、Oracle Rdbによって自動的に保持されます。物理ストレージと作業負荷の統計情報は、RMU Collect Optimizer_Statisticsコマンドを発行した場合にのみ収集されます。特定の問合せに対する物理ストレージと作業負荷の統計情報を得るには、RDMS$DEBUG_FLAGS論理名に"O"を定義します。次に例を示します。
$ DEFINE RDMS$DEBUG_FLAGS "O"
問合せを実行する際、作業負荷および物理統計が問合せの最適化に使用された場合、コマンド出力に次のような行が表示されます。
~O: Workload and Physical statistics used
- RMU Delete Optimizer_Statisticsコマンドを実行する前に、Output修飾子を指定してRMU Show Optimizer_Statisticsコマンドを実行することをお薦めします。統計情報を誤って削除した場合、RMU Insert Optimizer_Statisticsコマンドを発行し、出力ファイルに含む統計値を指定することで、統計情報を置き換えることができます。
例1次の例では、次のことを行うコマンドを発行します。
- EMPLOYEESおよびJOB_HISTORY表とその索引に対するオプティマイザ統計情報を表示します。
- JOB_HISTORYの列グループ(EMPLOYEE_ID, JOB_CODE, JOB_START, JOB_END, DEPARTMENT_CODE, SUPERVISOR_ID)のエントリが削除されます。
$ RMU/SHOW OPTIMIZER_STATISTICS MF_PERSONNEL.RDB - _$ /TABLES=(EMPLOYEES, JOB_HISTORY)/STATISTICS=(WORKLOAD) ----------------------------------------------------------------------- Optimizer Statistics for table : EMPLOYEES Workload Column group : EMPLOYEE_ID Duplicity factor : 1.0000000 Null factor : 0.0000000 First created time : 3-JUL-1996 10:37:36.43 Last collected time : 3-JUL-1996 10:46:10.73 Workload Column group : LAST_NAME, FIRST_NAME, MIDDLE_INITIAL, ADDRESS_DATA_1, ADDRESS_DATA_2, CITY, STATE, POSTAL_CODE, SEX, BIRTHDAY, STATUS_CODE Duplicity factor : 1.5625000 Null factor : 0.3600000 First created time : 3-JUL-1996 10:37:36.43 Last collected time : 3-JUL-1996 10:46:10.74 ---------------------------------------------------------------------- Optimizer Statistics for table : JOB_HISTORY Workload Column group : EMPLOYEE_ID Duplicity factor : 2.7400000 Null factor : 0.0000000 First created time : 3-JUL-1996 10:37:36.43 Last collected time : 3-JUL-1996 10:54:09.62 Workload Column group : EMPLOYEE_ID, JOB_CODE, JOB_START, JOB_END, DEPARTMENT_CODE, SUPERVISOR_ID Duplicity factor : 1.5930233 Null factor : 0.3649635 First created time : 3-JUL-1996 10:57:47.65 Last collected time : 3-JUL-1996 10:57:47.65 $ ! $ ! Delete one of the entries for JOB_HISTORY $ ! $ RMU/DELETE OPTIMIZER_STATISTICS MF_PERSONNEL.RDB/TABLE=(JOB_HISTORY) - _$ /COLUMN_GROUP=(EMPLOYEE_ID,JOB_CODE,JOB_START,JOB_END, - _$ DEPARTMENT_CODE,SUPERVISOR_ID)/LOG Changing RDB$SYSTEM area to READ_WRITE. Workload column group deleted for JOB_HISTORY : EMPLOYEE_ID, JOB_CODE, JOB_START, JOB_END, DEPARTMENT_CODE, SUPERVISOR_ID