アーティクル - CS234097
SQL チューニング Advisor および SQL プロファイルによるクエリーのチューニング
修正日: 30-May-2016
適用対象
- Windchill PDMLink 9.1 F000
説明
ORACLE での SQL チューニング Advisor (STA) と SQL プロファイルを使用したクエリーのチューニング
Note: You need to have the Diagnostic and Tuning Pack enabled for your Oracle system.
これにより、いる解析する必要がある awr スナップショット情報と sql_id を受け入れることができます。
スプールファイルをブラウズすると、"結果のセクション" が表示されます。
これには、STA による推奨事項が表示される場合があります。一般的な推奨事項を次に示します。
これは、現在の sql で使用されているものよりも優れた実行計画が見つかったことを意味します。この実行計画は SQL プロファイルとして表されます。
上記を実行すると、推奨されるプロファイルは、デフォルトのカテゴリの下の DBA_SQL_PROFILES テーブルに、' SYS_SQLPROF_014a343154084000 ' などのシステムによって生成された名前 (ランダムな名前!) で登録されます。
これにより、必要な SQL プロファイルを保持できるテーブル SQL_STG_TAB が作成されます。このテーブルの構造は DBA_SQL_PROFILES テーブルの構造とまったく同じになります。
名前
——————————
SYS_SQLPROF_0815
> Exec DBMS_SQLTUNE SQL ます。PACK_STGTAB_SQLPROF (staging_table_name = > ' SQL_STG_TAB '、profile_name = > ' SYS_SQLPROF_0815 ')。
Note: You need to have the Diagnostic and Tuning Pack enabled for your Oracle system.
- DBA ユーザーとしてログイン:
$ sqlplus "/sysdba"
- この sql を実行して、どのような sqls が実行されているかを確認します。
列プログラムフォーマット a20
線180を設定
列 sql_text フォーマット a50
b. sid, b. status, b. last_call_et, b. program, c. sql_id, c. sql_text v $ session b, v $ sqlarea c. sql_id = c. sql_id の順に選択します。
線180を設定
列 sql_text フォーマット a50
b. sid, b. status, b. last_call_et, b. program, c. sql_id, c. sql_text v $ session b, v $ sqlarea c. sql_id = c. sql_id の順に選択します。
- 目的の sql_id の SQL チューニング Advisor を実行します。
SQL > スプール spool_file_name .log
SQL > @?/rdbms/admin/sqltrpt
SQL > スプールをオフにします。
SQL > @?/rdbms/admin/sqltrpt
SQL > スプールをオフにします。
これにより、いる解析する必要がある awr スナップショット情報と sql_id を受け入れることができます。
スプールファイルをブラウズすると、"結果のセクション" が表示されます。
これには、STA による推奨事項が表示される場合があります。一般的な推奨事項を次に示します。
1-SQL プロファイルを検索します (以下の計画の説明を参照してください)。
——————————————————–
この文には、より優れた実行計画が見つかりました。
推奨事項 (推定利益: 99.91%)
——————————————
-推奨されている SQL プロファイルを承認します。
dbms_sqltune を実行します。 accept_sql_profile (task_name = > ' TASK_4711 '、置換 = > TRUE)。
この文には、より優れた実行計画が見つかりました。
推奨事項 (推定利益: 99.91%)
——————————————
-推奨されている SQL プロファイルを承認します。
dbms_sqltune を実行します。 accept_sql_profile (task_name = > ' TASK_4711 '、置換 = > TRUE)。
これは、現在の sql で使用されているものよりも優れた実行計画が見つかったことを意味します。この実行計画は SQL プロファイルとして表されます。
- 現在の sql に対して新しいプロファイルのデフォルトを作成するには、STA による提案に従って accept_qsl_profile 手順を実行します。
SQL > 実行 dbms_sqltune ます。 accept_sql_profile (task_name = > ' TASK_4711 '、置換 = > TRUE)。
上記を実行すると、推奨されるプロファイルは、デフォルトのカテゴリの下の DBA_SQL_PROFILES テーブルに、' SYS_SQLPROF_014a343154084000 ' などのシステムによって生成された名前 (ランダムな名前!) で登録されます。
- プロファイルをカスタム名で登録する場合は、次のように使用します。
SQL > 実行 dbms_sqltune ます。 accept_sql_profile (task_name = > ' TASK_4711 '、名前 = > ' CUSTOM_PROF_MyQuery ')。
- これらのプロファイルは、次のように、あるデータベースから別のデータベースに移動できます。これは、sql プロファイルのパッキングと展開と呼ばれます。最初にステージングテーブルを作成します。これにより、移動する sql プロファイルが保存されます。
> Exec DBMS_SQLTUNE SQL ます。CREATE_STGTAB_SQLPROF (table_name = > ' SQL_STG_TAB '、schema_name = > ' SYS ')。
これにより、必要な SQL プロファイルを保持できるテーブル SQL_STG_TAB が作成されます。このテーブルの構造は DBA_SQL_PROFILES テーブルの構造とまったく同じになります。
- カスタムプロファイルをステージテーブルにパックするには、次の操作を行います。
> EXEC DBMS_SQLTUNE SQL ます。PACK_STGTAB_SQLPROF (staging_table_name = > ' SQL_STG_TAB '、profile_name = > ' CUSTOM_PROF_MyQuery ′)。
- デフォルトカテゴリのすべてのプロファイルをステージテーブルにパックするには
> EXEC DBMS_SQLTUNE SQL ます。PACK_STGTAB_SQLPROF (staging_table_name = > ' SQL_STG_TAB ')。
- 特定の sql プロファイルをパックする必要があり、クエリーできるプロファイルの名前がわからない場合 dba_sql_profiles タブを使用します。
SQL > SQL_TEXT のように DBA_SQL_PROFILES から名前を選択します。
名前
——————————
SYS_SQLPROF_0815
> Exec DBMS_SQLTUNE SQL ます。PACK_STGTAB_SQLPROF (staging_table_name = > ' SQL_STG_TAB '、profile_name = > ' SYS_SQLPROF_0815 ')。
- Exp を使用してステージタブをエクスポートします。
$ exp "/sysdba" テーブル = SQL_STG_TAB ファイル = SQL_STG_TAB
- Imp を使用してステージタブをインポート
$ imp "/sysdba" ファイル = SQL_STG_TAB、dmp フル = y
- ターゲットデータベースでプロファイルをアンパックします。
> EXEC DBMS_SQLTUNE SQL ます。UNPACK_STGTAB_SQLPROF (置換 = > TRUE、staging_table_name = > ' SQL_STG_TAB ')。
最新バージョンはこちらを参照ください CS234097