127 DBMS_OPTIM_BUNDLE

DBMS_OPTIM_BUNDLEパッケージは、実行計画の変更をもたらす、インストール済だが無効化されている、モジュールのバグ修正を管理するために使用されます。

127.1 DBMS_OPTIM_BUNDLEのセキュリティ・モデル

DBMS_OPTIM_BUNDLEパッケージは、パッケージを起動するユーザーの権限で実行されます。このパッケージを実行するにはDBAロールが必要です。

127.2 DBMS_OPTIM_BUNDLEサブプログラムの要約

この表は、DBMS_OPTIM_BUNDLEサブプログラムを示し、簡単に説明しています。

表127-1 DBMS_OPTIM_BUNDLEパッケージのサブプログラム

サブプログラム 説明

ENABLE_OPTIM_FIXESプロシージャ

このプロシージャは、最新のインストール済リリース更新までの、計画が変更される修正を有効または無効にします。

GETBUGSFORBUNDLEプロシージャ

このプロシージャは、リリース更新の一部として適用された、実行計画のバグ修正を表示します。

LISTBUNDLESWITHFCFIXESプロシージャ

このプロシージャは、修正制御の修正があるリリース更新の名前およびリリース更新IDをリストします。

SET_FIX_CONTROLSプロシージャ

このプロシージャは、_fix_controlsにより修正のリストを有効または無効にします。

127.2.1 ENABLE_OPTIM_FIXESプロシージャ

DBMS_OPTIM_BUNDLEサブプログラムのENABLE_OPTIM_FIXESプロシージャは、最新のインストール済リリース更新までの、計画が変更される修正を有効または無効にします。

構文

DBMS_OPTIM_BUNDLE.ENABLE_OPTIM_FIXES ( 
   action                           IN  VARCHAR2  DEFAULT 'OFF', 
   scope                            IN  VARCHAR2  DEFAULT 'MEMORY',
   current_setting_precedence       IN  VARCHAR2  DEFAULT 'YES');

パラメータ

表127-2 ENABLE_OPTIM_FIXESプロシージャのパラメータ

パラメータ 説明

action

現在のリリース更新までの(それを含む)、インストール済だが無効化されている、実行計画のすべてのバグ修正を有効または無効にします。

可能な値は次のとおりです:
  • ON: バンドルの修正を有効にします。
  • OFF: _fix_controlsを値0に設定することで、バンドルの修正を無効にします。それによりSPFILEから_fix_controlエントリが削除されることはありません。

デフォルト値はOFFです。

scope

インストール済だが無効化されている、実行計画のバグ修正を有効化または無効化する範囲。

可能な値は次のとおりです:
  • MEMORY
  • SPFILE
  • BOTH
  • INITORA

MEMORY/SPFILE/BOTH: これら3つの入力値により、特定の範囲内の修正を有効または無効にします。

INITORA: この入力値により、実行計画のバグ修正を有効または無効にするためにユーザーがデータベースのinit.oraファイルに手動で入力する必要があるコマンド構文のみを表示します。この方法でSCOPE=INITORAを使用する場合、current_setting_precedenceフィールドには意味はありません。

current_setting_precedence

環境設定またはリリース更新設定の優先順位を設定します(これらの設定が競合している場合)。

可能な値は次のとおりです:
  • YES: 競合している場合は、現在の環境設定が優先されます
  • NO: 競合している場合は、リリース更新設定が優先されます

デフォルト値はYESです。

現在のリリース更新までの(それを含む)、インストール済だが無効化されている、実行計画のすべてのバグ修正を有効にするには、次のようにします。

SQL> execute dbms_optim_bundle.enable_optim_fixes('ON','BOTH', 'YES');

この手順では、現在の設定より優先して、MEMORY内および永続的なSPFILE内のすべての修正を有効にします。

例外

次の例外は、ENABLE_OPTIM_FIXESプロシージャによって発生します。
  • ORA-20001: 入力値が無効です。
  • ORA-20002: 内部エラーまたは他のエラー

127.2.2 GETBUGSFORBUNDLEプロシージャ

DBMS_OPTIM_BUNDLEサブプログラムのGETBUGSFORBUNDLEプロシージャは、リリース更新の一部として適用された、実行計画のバグ修正を表示します。

構文

DBMS_OPTIM_BUNDLE.GETBUGSFORBUNDLE ( 
   bundleid            IN  NUMBER  DEFAULT NULL);

パラメータ

表127-3 GETBUGSFORBUNDLEプロシージャのパラメータ

パラメータ 説明

bundleid

リリース更新ID。

NULLの場合、最新バンドルからの実行計画のバグ修正が表示されます。バンドルIDが指定されている場合、指定されたバンドルまでの、実行計画のバグ修正が表示されます。

デフォルト値はNULLです。

適用済の最新のリリース更新からの、インストール済だが無効化されている、実行計画のバグ修正のリストを表示するには、次のようにします。

SQL> set serveroutput on;
SQL> execute dbms_optim_bundle.getbugsforbundle;

19.8.0.0.200714DBRU:
   Bug: 29304314, fix_controls: 29304314
   Bug: 29930457, fix_controls: 29930457

前述の例では、19.8.0.0.200714DBRUリリースからの、インストール済だが無効化されている、実行計画のバグ修正が示されています。

リリース更新171017までの(それを含む)、インストール済だが無効化されている、実行計画のバグ修正のリストを表示するには、次のようにします。

SQL> execute dbms_optim_bundle.getbugsforbundle(171017);

例外

次の例外は、GETBUGSFORBUNDLEプロシージャによって発生します。
  • ORA-20001: 入力値が無効です。
  • ORA-20002: 内部エラーまたは他のエラー

127.2.3 LISTBUNDLESWITHFCFIXESプロシージャ

DBMS_OPTIM_BUNDLEサブプログラムのLISTBUNDLESWITHFCFIXESプロシージャは、修正制御の修正があるリリース更新の名前およびリリース更新IDをリストします。

構文

DBMS_OPTIM_BUNDLE.LISTBUNDLESWITHFCFIXES ( );

リリース更新名およびリリース更新IDを表示するには、次のようにします。

SQL> set serveroutput on
SQL> exec dbms_optim_bundle.listBundlesWithFCFixes;
   bundleId: 190719, bundleName: 19.4.0.0.190719DBRU
   bundleId: 191015, bundleName: 19.5.0.0.191015DBRU
   bundleId: 200414, bundleName: 19.7.0.0.200414DBRU
   bundleId: 200714, bundleName: 19.8.0.0.200714DBRU
   bundleId: 201020, bundleName: 19.9.0.0.201020DBRU
   bundleId: 210119, bundleName: 19.10.0.0.210119DBRU
   bundleId: 210420, bundleName: 19.11.0.0.210420DBRU
   bundleId: 210720, bundleName: 19.12.0.0.210720DBRU

   PL/SQL procedure successfully completed.

例外

次の例外は、LISTBUNDLESWITHFCFIXESプロシージャによって発生します。

ORA-20002: 内部エラーまたは他のエラー

127.2.4 SET_FIX_CONTROLSプロシージャ

DBMS_OPTIM_BUNDLEサブプログラムのSET_FIX_CONTROLSプロシージャは、_fix_controlsにより修正のリストを有効または無効にします。修正は、ベース・バージョン、リリース更新、または個別リリースにある可能性があります。このプロシージャは、新しい修正制御設定を既存のものに追加します。

構文

DBMS_OPTIM_BUNDLE.SET_FIX_CONTROLS ( 
   fix_control_string               IN  VARCHAR2,
   sid                              IN  VARCHAR2  DEFAULT '*', 
   scope                            IN  VARCHAR2  DEFAULT 'MEMORY',
   current_setting_precedence       IN  VARCHAR2  DEFAULT 'YES');

パラメータ

表127-4 SET_FIX_CONTROLSプロシージャのパラメータ

パラメータ 説明

fix_control_string

fix_control:valueペアのカンマ区切りリスト。たとえば、'13329748:0,20355502:4, 27060221:1'のように指定します

sid

fix_controlを設定する必要があるインスタンスの名前。

指定できる値は、*、またはsys.gv$instanceからの有効なinstance_nameです。デフォルト値は*です。

scope

インストール済だが無効化されている、実行計画のバグ修正を有効化または無効化する範囲。

可能な値は次のとおりです:
  • MEMORY
  • SPFILE
  • BOTH

デフォルト値はMEMORYです。

current_setting_precedence

ユーザーが指定した設定より現在の設定が優先されます。

可能な値は次のとおりです:
  • YES–競合している場合は、現在の環境設定が優先されます
  • NO–競合している場合は、入力設定が優先されます

デフォルト値はYESです。

例外

次の例外は、SET_FIX_CONTROLSプロシージャによって発生します。
  • ORA-20001: 入力値が無効です。
  • ORA-20002: 内部エラーまたは他のエラー