- 統計情報収集パッケージ。
- スキーマ単位での統計情報取得とリスト取得の2つの取得が可能。
- テーブル、インデックスが非常に多い場合など、「Analyze」コマンドでの統計情報取得が困難な場合に、スキーマ単位で統計情報を取得できる。
- パラメータ指定時は「パラメータ => '設定値'」の形式で表記。すべてのパラメータについて設定を入力する場合は「設定値」のみで表記。
【スキーマ単位統計情報取得】
exec DBMS_STATS.GATHER_SCHEMA_STATS(
OWNNAME => '分析するスキーマ('NULL'は現行スキーマ)',
ESTIMATE_PERCENT => 'サンプルレート('NULL'は計算)',
BLOCK_SAMPLE => 'ランダンムブロックサンプリングを使用するかどうか',
METHOD_OPT =>
DEGREE => '並列度',
GRANULARITY => '収集する統計情報の細分化',
CASCADE => 'インデックス統計 有無',
STATTAB => '現在の統計情報の保存場所を示すユーザ統計情報の識別子',
STATID => 'STATTAB内の統計情報を関連付ける識別子',
OPTIONS => 'オプション',
OBJLIST => '失効または空と判断されたオブジェクトのリストを戻す',
STAOWN => 'STATTABを含んだスキーマ',
NO_INVALIDATE => '依存カーソルの無効の有無'
FORCE => 'ロックされている場合でも統計情報を収集'
);
◎optionの種類
'GATHER'
すべてのオブジェクト統計情報取得。
'GATHER STALE'
DBA_TAB_MODIFICATIONSのリストから判断。
表にMONITORING属性が指定されていて、なおかつ最後の統計情報取得後に10%以上の更新されたもの。
(MONITORING属性がついていないものと、更新が10%以下のものは対象外)
'GATHER AUTO'
oracleが必要と判断したオブジェクト統計情報を取得。
新しい統計情報を必要とするオブジェクトを暗黙的に判別し、統計情報を収集する。
’GATHER STALE’に加え、MONITORING属性に関係なく統計情報が取得されていない表が対象。
”AUTO”がしてされた場合に有効になる追加パラメータは
"ownname","stattab","statid","objilist","statown"のみ。
'GATHER_EMPTY'
統計情報が存在しないオブジェクトの統計情報を取得。
◎MONITORING属性の確認
select table_name , monitoring from user_tables;
→「monitoring」が”YES”になっているもの。
◎統計情報格納テーブル
select * from aux_stats$;
◎oracle10gからのデフォルト設定について
- 10gからはデフォルト設定にて統計情報を取得する。
- 取得タイミングは月~金(22時~8時)、土日(土曜0時~日曜24時)。
- 上記時間帯でスケジューラ・ジョブのウィンドウがオープンしている。
- 統計のロックを行うと統計情報は更新されない。
- 時計情報が取得されていないもの、前回取得から10%以上行が更新されたものが対象。
- 実行されるプログラムは「dbms.stats.gather_database_stats_job_proc」(「dbms_stats.gather_databse_stats」に’gather auto’オプションをしていした動きと同等)
◎統計情報のロック
スキーマとテーブル単位で設定が可能。
<ロック>
DBMS_STAT.LOCK_SHEMA_STATS ( ownname <スキーマ名>);
DBMS_STAT.LOCK_TABLE_STATS ( ownname <スキーマ名>, tabname
<ロック解除>
DBMS_STAT.UNLOCK_SHEMA_STATS ( ownname <スキーマ名>);
DBMS_STAT.UNLOCK_TABLE_STATS ( ownname <スキーマ名>, tabname
例)
DBMS_STATS.GATHER_SCHEMA_STATS (
NULL, →現行のスキーマの統計情報を取得。
NULL, →oracleにてサンプリング率を計算。
FALSE, ランダム行サンプリングの実施。
'AUTO', →列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列を判断。
DBMS_STATS.DEFAULT_DEGREE, →初期化パラメータに基づく並列度を使用。
'DEFAULT', →グローバル、パーティションレベルで統計所法を収集。
TRUE, →索引についても統計情報を取得。
NULL, →統計情報の保存場所。
NULL, →統計情報を関連付ける識別子。
'GATHER AUTO', →必要な統計情報をすべて自動的に集計する。(GATHER AUTOが指定された場合、有効な追加パラメータはownname、stattab、statid、objlistおよびstatownのみ)
NULL,
TRUE,
FALSE
);
0 件のコメント:
コメントを投稿