この章の内容は次のとおりです。
SQLチューニング・セット(STS)は、チューニング・ツールへの入力として使用できるデータベース・オブジェクトです。
STSに含まれるのは、次のとおりです。
SQL文のセット
関連する実行コンテキスト(ユーザー・スキーマ、アプリケーション・モジュール名およびアクション、バインド値のリストおよびカーソルのSQLのコンパイルの環境など)
関連する基本実行統計(経過時間、CPUタイム、バッファ読取り、ディスク読取り、処理された行数、カーソル・フェッチ、実行数、実行完了数、オプティマイザ・コストおよびコマンドのタイプなど)
各SQL文に関連する実行計画および行ソースの統計(オプション)
このデータベースは、SQLチューニング・セットをデータベース提供のスキーマに格納します。
この項の内容は次のとおりです。
注意:
STSをプラガブル・データベースとともに使用すると、データの可視性と権限の要件が一致しない場合があります。コンテナ・データベース(CDB)内での管理機能の動作をまとめた表が記載されている『Oracle Database管理者ガイド』を参照してください。
STSを使用すると、SQL文と関連するメタデータを単一のデータベース・オブジェクトにグループ化し、そのオブジェクトを使用してチューニングに関する目標を達成できます。具体的には、SQLチューニング・セットによって次の目標が達成されます。
パフォーマンス・チューニング・アドバイザへの入力の提供
STSは、SQLチューニング・アドバイザ、SQLアクセス・アドバイザ、SQLパフォーマンス・アナライザなど、複数のデータベース・アドバイザの入力として使用できます。
データベース間でのSQLの転送
SQLチューニングセットを別のデータベースにエクスポートすることで、SQLワークロードをデータベース間で転送してリモート・パフォーマンス診断およびチューニングを実行できます。本番データベースにパフォーマンスが最適でないSQL文がある場合、開発者が直接本番システム上で調査およびチューニングを実行することは望ましくありません。DBAにより、開発者が安全に分析およびチューニングできるテスト用データベースに、問題のあるSQL文を転送できます。
STSを作成するには、SQL文をソースからSTSにロードする必要があります。
図19-1のように、使用可能なソースには、自動ワークロード・リポジトリ(AWR)、共有SQL領域、ユーザーによって提供されたカスタマイズ済のSQL、トレース・ファイル、他のSTSなどがあります。
SQLチューニング・セットでは、次の操作を実行できます。
アプリケーション・モジュール名とアクション、または任意の実行統計を使用して、SQL文をフィルタできます。
SQL文を実行統計の任意の組合せに基づいてランク付けできます。
アドバイザの入力として使用したり、それを異なるデータベースに転送したりできます。
関連項目:
AWRの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください
Oracle Enterprise Manager Cloud Control (Cloud Control)またはPL/SQLパッケージを使用すると、SQLチューニング・セットを管理できます。Cloud Controlをお薦めします。
Cloud ControlのSQLチューニング・セット・ページは、SQLチューニング・セットに関係する多くの操作を実行できる開始ページです。
SQLチューニング・セット・ページにアクセスする手順は次のとおりです。
「Cloud Controlのデータベース・ホーム・ページへのアクセス」の説明に従って、「データベース・ホーム」ページにアクセスします。
「パフォーマンス」メニューから「SQL」を選択し、さらに「SQLチューニング・セット」を選択します。
SQLチューニング・セット・ページは、図19-2のように表示されます。
関連項目:
Oracle Database 2日でパフォーマンス・チューニング・ガイド
DBMS_SQLTUNEは、SQLチューニング・セットの作成、使用および削除に必要なプロシージャを提供します。
次の図は、基本ワークフローを示しています。
通常、STS操作を実行する順序は次のとおりです。
新規STSを作成します。
このタスクについては、「SQLチューニング・セットの作成」を参照してください。
そのSTSをSQL文および関連するメタデータとともにロードします。
このタスクについては、「SQLチューニング・セットのロード」を参照してください。
オプションで、STSの内容を表示します。
このタスクについては、「SQLチューニング・セットの内容の表示」を参照してください。
オプションで、STSの内容を更新または削除します。
このタスクについては、「SQLチューニング・セットの変更」を参照してください。
入力にSTSを使用してチューニング・タスクを作成します。
オプションで、他のデータベースにSTSを転送します。
このタスクについては、「SQLチューニング・セットの転送」を参照してください。
完了時にSTSを削除します。
このタスクについては、「SQLチューニング・セットの削除」を参照してください。
データベース内に空のSTSを作成するには、DBMS_SQLTUNE.CREATE_SQLSETプロシージャを実行します。プロシージャのかわりにファンクションを使用すると、データベースによってSTSの名前が生成されます。
次の表では、一部のプロシージャ・パラメータを説明します。
表19-1 DBMS_SQLTUNE.CREATE_SQLSETパラメータ
| パラメータ | 説明 |
|---|---|
|
STSの名前 |
|
STSに関するオプションの説明 |
前提条件
このチュートリアルでは、SQLT_WKLD_STSという名前のSTSを作成するものとします。
STSを作成する手順は次のとおりです。
適切な権限でデータベースにSQL*Plusを接続し、DBMS_SQLTUNE.CREATE_SQLSETプロシージャを実行します。
たとえば、次のPL/SQLプログラムを実行します。
BEGIN
DBMS_SQLTUNE.CREATE_SQLSET (
sqlset_name => 'SQLT_WKLD_STS'
, description => 'STS to store SQL from the private SQL area'
);
END;
オプションで、STSが作成されたことを確認します。
次の例では、現行のユーザーによって所有されているすべてのSQLチューニング・セットのステータスを問い合せます。
COLUMN NAME FORMAT a20 COLUMN COUNT FORMAT 99999 COLUMN DESCRIPTION FORMAT a30 SELECT NAME, STATEMENT_COUNT AS "SQLCNT", DESCRIPTION FROM USER_SQLSET;
出力例は次のように表示されます。
NAME SQLCNT DESCRIPTION -------------------- ------ ------------------------------ SQLT_WKLD_STS 2 SQL Cache
関連項目:
詳細な参照情報については、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
STSをSQL文とともにロードするには、DBMS_SQLTUNE.LOAD_SQLSETプロシージャを実行します。STSにデータを移入するための標準ソースは、AWR、他のSTSまたは共有SQL領域です。ワークロード・リポジトリおよびSQLチューニング・セットのどちらの場合も、事前定義済のテーブル・ファンクションにより、新しいSTSに移入する列をソースから選択できます。
表19-2に、プロシージャの一部のDBMS_SQLTUNE.LOAD_SQLSETパラメータの説明を示します。完全なリファレンス情報については、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
表19-2 DBMS_SQLTUNE.LOAD_SQLSETのパラメータ
| パラメータ | 説明 |
|---|---|
|
STSの入力に使用するカーソル参照を指定します。 |
|
STSへの文のロード方法を指定します。指定可能な値は、 |
DBMS_SQLTUNE.SELECT_CURSOR_CACHEファンクションは、指定されたフィルタに従って、SQL文を共有SQL領域から収集します。このファンクションは、各データ・ソースで検出されるSQL IDまたはPLAN_HASH_VALUEの組合せごとに1つのSQLSET_ROWを戻します。
CAPTURE_CURSOR_CACHE_SQLSETファンクションを使用すると、特定の間隔で共有SQL領域を繰り返しポーリングできます。このファンクションは、SELECT_CURSOR_CACHEおよびLOAD_SQLSETプロシージャを繰り返しコールする場合よりも効率的です。また、高負荷SQL文のワークロードのみを取得するAWR、またはデータ・ソースに1回のみアクセスするLOAD_SQLSETプロシージャとは対照的に、ワークロード全体を効果的に取得します。
前提条件
このチュートリアルの前提条件は、次のとおりです。
SELECT_CURSOR_CACHEファンクションで提供されるフィルタは、現行のユーザーが実行するSQL文の一部として評価されます。したがって、それらのフィルタは、ユーザーのセキュリティ権限で実行され、ユーザーがアクセスできるすべての構成メンバーおよび副問合せを含んでいますが、それ以外のものは含んでいません。
現行のユーザーは、共有SQL領域のビューに対する権限を持っている必要があります。
前提条件
このチュートリアルでは、SQLT_WKLD_STSという名前のSQLチューニング・セットに共有SQL領域の文をロードするものとします。
STSをロードする手順は次のとおりです。
適切な権限を持つユーザーとして、SQL*Plusをデータベースに接続します。
DBMS_SQLTUNE.LOAD_SQLSETプロシージャを実行します。
たとえば、次のPL/SQLプログラムを実行すると、shスキーマに属するすべてのカーソル・キャッシュ文をSQLチューニング・セットに移入できます。
DECLARE
c_sqlarea_cursor DBMS_SQLTUNE.SQLSET_CURSOR;
BEGIN
OPEN c_sqlarea_cursor FOR
SELECT VALUE(p)
FROM TABLE(
DBMS_SQLTUNE.SELECT_CURSOR_CACHE(
' module = ''SQLT_WKLD'' AND parsing_schema_name = ''SH'' ')
) p;
-- load the tuning set
DBMS_SQLTUNE.LOAD_SQLSET (
sqlset_name => 'SQLT_WKLD_STS'
, populate_cursor => c_sqlarea_cursor
);
END;
/
STSを作成し、データを移入したら、DBMS_SQLTUNE.SELECT_SQLSETファンクションを実行して、STSの内容を(オプションでフィルタ条件を使用して)読み取ります。
PL/SQL パイプライン・テーブル・ファンクションを使用するSELECT_SQLSETの出力を選択し、行のコレクションを入力として受け入れます。SELECT文のFROMリストで表演算子のオペランドとしてテーブル・ファンクションを起動します。
表19-3に、SELECT_SQLSETファンクションの一部のパラメータの説明を示します。完全なリファレンス情報については、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
表19-3 DBMS_SQLTUNE.SELECT_SQLSETのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
共有SQL領域から選択されたSQLのオブジェクト・リストに含まれるオブジェクトを指定します。 |
表19-4に、SQLSET_ROWオブジェクトの一部の属性の説明を示します。これらの属性は、TABLE(DBMS_SQLTUNE.SELECT_SQLSET())を問い合せたときに列として表示されます。
表19-4 SQLSET_ROWの属性
| パラメータ | 説明 |
|---|---|
|
SQLの解析が行われるスキーマ |
|
このSQL文で経過した秒数の合計 |
|
このSQL文のバッファ取得回数(データベースがブロックにアクセスした回数)の合計 |
前提条件
このチュートリアルでは、SQLT_WKLD_STSという名前のSTSの内容を表示するものとします。
STSの内容を表示する手順は次のとおりです。
適切な権限でデータベースにSQL*Plusを接続し、TABLEファンクションを使用してSTSの内容を問い合せます。
たとえば、次の問合せを実行します。
COLUMN SQL_TEXT FORMAT a30
COLUMN SCH FORMAT a3
COLUMN ELAPSED FORMAT 999999999
SELECT SQL_ID, PARSING_SCHEMA_NAME AS "SCH", SQL_TEXT,
ELAPSED_TIME AS "ELAPSED", BUFFER_GETS
FROM TABLE( DBMS_SQLTUNE.SELECT_SQLSET( 'SQLT_WKLD_STS' ) );
出力例は次のように表示されます。
SQL_ID SCH SQL_TEXT ELAPSED BUFFER_GETS
------------- --- ------------------------------ ---------- -----------
79f8shn041a1f SH select * from sales where quan 8373148 24016
tity_sold < 5 union select * f
rom sales where quantity_sold
> 500
2cqsw036j5u7r SH select promo_name, count(*) c 3557373 309
from promotions p, sales s whe
re s.promo_id = p.promo_id and
p.promo_category = 'internet'
group by p.promo_name order b
y c desc
fudq5z56g642p SH select sum(quantity_sold) from 4787891 12118
sales s, products p where s.p
rod_id = p.prod_id and s.amoun
t_sold > 20000 and p.prod_name
= 'Linen Big Shirt'
bzmnj0nbvmz8t SH select * from sales where amou 442355 15281
nt_sold = 4
オプションで、ユーザー固有の条件に基づいて結果をフィルタします。
次の例では、バッファ取得に対するディスク読取りの比率が50%以上の文を表示します。
COLUMN SQL_TEXT FORMAT a30
COLUMN SCH FORMAT a3
COLUMN BUF_GETS FORMAT 99999999
COLUMN DISK_READS FORMAT 99999999
COLUMN %_DISK FORMAT 9999.99
SELECT sql_id, parsing_schema_name as "SCH", sql_text,
buffer_gets as "B_GETS",
disk_reads, ROUND(disk_reads/buffer_gets*100,2) "%_DISK"
FROM TABLE( DBMS_SQLTUNE.SELECT_SQLSET(
'SQLT_WKLD_STS',
'(disk_reads/buffer_gets) >= 0.50' ) );
出力例は次のように表示されます。
SQL_ID SCH SQL_TEXT B_GETS DISK_READS %_DISK
------------- --- ------------------------------ ------ ---------- -------
79f8shn041a1f SH select * from sales where quan 24016 17287 71.98
tity_sold < 5 union select * f
rom sales where quantity_sold
> 500
fudq5z56g642p SH select sum(quantity_sold) from 12118 6355 52.44
sales s, products p where s.p
rod_id = p.prod_id and s.amoun
t_sold > 20000 and p.prod_name
= 'Linen Big Shirt'
SQL文をSTSから削除するには、DBMS_SQLTUNE.DELETE_SQLSETプロシージャを使用します。
UPDATE_SQLSETプロシージャを使用すると、STS名およびSQL IDで識別される既存のSTS内のSQL文の属性(PRIORITYまたはOTHERなど)を更新できます。
前提条件
このチュートリアルでは、SQLT_WKLD_STSを次のように変更するものとします。
フェッチ回数が100を超えるすべてのSQL文を削除します。
IDがfudq5z56g642pのSQL文の優先順位を1に変更します。優先順位は、SQLチューニング・アドバイザを実行するときのランク付け基準として使用できます。
STSの内容を変更する手順は次のとおりです。
適切な権限でデータベースにSQL*Plusを接続し、オプションでTABLEファンクションを使用してSTSの内容を問い合せます。
たとえば、次の問合せを実行します。
SELECT SQL_ID, ELAPSED_TIME, FETCHES, EXECUTIONS
FROM TABLE(DBMS_SQLTUNE.SELECT_SQLSET('SQLT_WKLD_STS'));
出力例は次のように表示されます。
SQL_ID ELAPSED_TIME FETCHES EXECUTIONS ------------- ------------ ---------- ---------- 2cqsw036j5u7r 3407459 2 1 79f8shn041a1f 9453965 61258 1 bzmnj0nbvmz8t 401869 1 1 fudq5z56g642p 5300264 1 1
ユーザー固有の条件に基づいてSQL文を削除します。
SQLSET_ROWの属性に対して定義されたSTSからSQLをフィルタするには、basic_filter述語を使用します。次の例では、フェッチ回数が100を超えるSTS内の文をすべて削除します。
BEGIN
DBMS_SQLTUNE.DELETE_SQLSET (
sqlset_name => 'SQLT_WKLD_STS'
, basic_filter => 'fetches > 100'
);
END;
/
SQL文の属性値を設定します。
次の例では、文2cqsw036j5u7rの優先順位を1に設定します。
BEGIN
DBMS_SQLTUNE.UPDATE_SQLSET (
sqlset_name => 'SQLT_WKLD_STS'
, sql_id => '2cqsw036j5u7r'
, attribute_name => 'PRIORITY'
, attribute_value => 1
);
END;
/
オプションで、STSを問い合せて、目的の変更が加えられたことを確認します。
たとえば、次の問合せを実行します。
SELECT SQL_ID, ELAPSED_TIME, FETCHES, EXECUTIONS, PRIORITY
FROM TABLE(DBMS_SQLTUNE.SELECT_SQLSET('SQLT_WKLD_STS'));
出力例は次のように表示されます。
SQL_ID ELAPSED_TIME FETCHES EXECUTIONS PRIORITY ------------- ------------ ---------- ---------- ---------- 2cqsw036j5u7r 3407459 2 1 1 bzmnj0nbvmz8t 401869 1 1 fudq5z56g642p 5300264 1 1
関連項目:
詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください
Oracle Database 10gリリース2 (10.2)以降で作成された任意のデータベースにSTSを転送できます。これは、SQLパフォーマンス・アナライザを使用してテスト用データベースで回帰をチューニングする場合に役立ちます。
データベース間のSQLチューニング・セットの転送は、SQLチューニング・セットとステージング表間でコピーして、他のツールを使用してステージング表を宛先データベースに移行することを意味します。最も一般的なツールは、Oracle Data Pumpまたはデータベース・リンクです。
SQLチューニング・セットを転送するには、STSをエクスポートし、ダンプ・ファイルを転送した後、ダンプ・ファイルをインポートする必要があります。
次の図は、Oracle Data Pumpとftpを使用したプロセスを示しています。
図19-4に示すとおり、次のような手順があります。
本番データベースで、DBMS_SQLTUNE.PACK_STGTAB_SQLSETを使用してSTSをステージング表にパックします。
Oracle Data Pumpを使用して、STSをステージング表から.dmpファイルにエクスポートします。
ftpなどの転送ツールを使用して本番ホストからテスト・ホストに.dmpファイルを転送します。
テスト・データベースで、Oracle Data Pumpを使用して、STSを.dmpファイルからステージング表にインポートします。
DBMS_SQLTUNE.UNPACK_STGTAB_SQLSETを使用して、STSをステージング表からアンパックします。
STSを転送するとき、ソース・データベースと宛先データベースのcon_dbidが異なる場合に、STS内の各SQL文のcon_dbidを再マップする必要があります。
con_dbid値が異なるのは、次の状況です。
単一インスタンスのデータベースであり、そのインスタンスが再起動されている
Oracle RACデータベースに様々なインスタンスがある
PDBが異なっている
非CDBとCDBが存在する
再マップする基本手順は次のとおりです。
DBMS_SQLTUNE.PACK_STGTAB_SQLSETを使用してSTSをステージング表にパックします。
DBMS_SQLTUNE.REMAP_STGTAB_SQLSETを使用して、ステージング表内の各con_dbidを再マップします。
STSをエクスポートします。
転送先のCDBでSTSをアンパックします。
例19-1 非CDBからCDBにSTSを転送する場合のCON_DBIDの再マップ
この例では、STS_for_transportという名前のSTSを非CDBからCDBに転送します。ソース非CDB上で、DBMS_SQLTUNE.PACK_STGTAB_SQLSETプロシージャを使用して、すでにSTSをソース・ステージング表src_stg_tblにパックしています。転送先のCDBのコンテナIDは、12345です。
転送元の非CDBで、次のコマンドを実行します。
VARIABLE con_dbid_src NUMBER;
EXEC SELECT UNIQUE con_dbid INTO :con_dbid_src FROM src_stg_tbl;
BEGIN
DBMS_SQLTUNE.REMAP_STGTAB_SQLSET (
staging_table_name => 'src_stg_tbl'
, staging_schema_owner => 'dba1'
, old_sqlset_name => 'STS_for_transport'
, old_con_dbid => :con_dbid_src
, new_con_dbid => 12345);
END;
ステージング表のコンテンツをエクスポートして、引き続き通常の転送手順の使用できます。
関連項目:
REMAP_STGTAB_SQLSETの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください
SQLチューニング・セットを転送するには、DBMS_SQLTUNEパッケージの3つのサブプログラムを使用します。
次の表に、SQLチューニング・セットの転送に関連するDBMS_SQLTUNEプロシージャの説明を示します。
表19-5 SQLチューニング・セットを転送するためのDBMS_SQLTUNEプロシージャ
| プロシージャ | 説明 |
|---|---|
|
エクスポートされたSQLチューニング・セットを保持するステージング表を作成します。 |
|
ステージング表にSQLチューニング・セットを移入します。 |
|
SQLチューニング・セットをステージング表からデータベースにコピーします。 |
前提条件
このチュートリアルでは、次のことが前提となっています。
現在のリリースで作成した本番データベースに、低下したSQLを含むSTSが存在する場合。
Oracle Database 11gリリース2 (11.2)で作成したリモートのテスト用データベースでSQLパフォーマンス・アナライザの試行を実行する場合。
STSを本番データベースからテスト用データベースにコピーして、SQLパフォーマンス・アナライザの試行で回帰をチューニングする場合。
Oracle Database Pumpを使用して、データベース・ホスト間でSQLチューニング・セットを転送する場合。
STSを転送する手順は次のとおりです。
管理者権限で、SQL*Plusを本番データベースに接続します。
CREATE_STGTAB_SQLSETプロシージャを使用して、エクスポートされたSQLチューニング・セットを保持するステージング表を作成します。
次の例では、dba1にmy_11g_staging_tableを作成し、ステージング表の形式を11.2に指定します。
BEGIN
DBMS_SQLTUNE.CREATE_STGTAB_SQLSET (
table_name => 'my_10g_staging_table'
, schema_name => 'dba1'
, db_version => DBMS_SQLTUNE.STS_STGTAB_11_2_VERSION
);
END;
/
PACK_STGTAB_SQLSETプロシージャを使用して、ステージング表にSQLチューニング・セットを移入します。
次の例では、dba1.my_11g_staging_tableに、hrが所有するSTS my_stsを移入します。
BEGIN
DBMS_SQLTUNE.PACK_STGTAB_SQLSET (
sqlset_name => 'sqlt_wkld_sts'
, sqlset_owner => 'sh'
, staging_table_name => 'my_11g_staging_table'
, staging_schema_owner => 'dba1'
, db_version => DBMS_SQLTUNE.STS_STGTAB_11_2_VERSION
);
END;
/
必要に応じて、「CON_DBID値が異なる場合のSQLチューニング・セットを転送するための基本手順」の説明に従って、STS内の文のコンテナIDの値を再マップします。
Oracle Data Pumpを使用して、ステージング表のコンテンツをエクスポートします。
たとえば、オペレーティング・システム・プロンプトでexpdpコマンドを実行します。
expdp dba1 DIRECTORY=dpump_dir1 DUMPFILE=sts.dmp TABLES=my_11g_staging_table
dumpファイルをテスト・データベースのホストに転送します。
管理者としてテスト・ホストにログインし、Oracle Data Pumpを使用してステージング表の内容をインポートします。
たとえば、オペレーティング・システム・プロンプトでimpdpコマンドを実行します。
impdp dba1 DIRECTORY=dpump_dir1 DUMPFILE=sts.dmp TABLES=my_11g_staging_table
テスト・データベースで、UNPACK_STGTAB_SQLSETプロシージャを使用してステージング表からデータベースにSQLチューニング・セットをコピーします。
次の例は、SQLチューニング・セットをアンパックする方法を示しています。
BEGIN
DBMS_SQLTUNE.UNPACK_STGTAB_SQLSET (
sqlset_name => '%'
, replace => true
, staging_table_name => 'my_11g_staging_table');
END;
/
関連項目:
DBMS_SQLTUNE.UNPACK_STGTAB_SQLSETの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください
データベースからSTSを削除するには、DBMS_SQLTUNE.DROP_SQLSETプロシージャを実行します。
前提条件
削除するSTSがチューニング・タスクによって現在使用されていないことを確認します。既存のチューニング・タスクがこのSTSを使用している場合は、STSを削除する前に、そのタスクを削除します。削除しないと、データベースからORA-13757エラーが発行されます。
前提条件
このチュートリアルでは、SQLT_WKLD_STSという名前のSTSを削除するものとします。
STSを削除する手順は次のとおりです。
SQL*Plusを起動し、適切な権限でデータベースにログインします。
DBMS_SQLTUNE.DROP_SQLSETプロシージャを実行します。
たとえば、次のPL/SQLプログラムを実行します。
BEGIN DBMS_SQLTUNE.DROP_SQLSET( sqlset_name => 'SQLT_WKLD_STS' ); END; /
オプションで、STSが削除されたことを確認します。
次の例では、現行のユーザーによって所有されているSQLT_WKLD_STSという名前のSQLチューニング・セットの数をカウントします(出力例も示します)。
SELECT COUNT(*)
FROM USER_SQLSET
WHERE NAME = 'SQLT_WKLD_STS';
COUNT(*)
----------
0
関連項目:
DBMS_SQLTUNEのSTSプロシージャの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。