Oracleの統計情報の更新方法
頻度はそんなに無いというか、先日、トラブル対応時に必要に迫られたので・・・
通常は、Oracleの統計情報は1日1回更新されるらしいんだけど、夜とかになるみたい。
多分、設定すれば時間は変更出来るんだろうけど。
BEGIN --テーブル単位の収集 DBMS_STATS.GATHER_TABLE_STATS ( OWNNAME => 'ユーザ名' ,TABNAME => 'テーブル名' ,METHOD_OPT => 'FOR ALL INDEXED' ,CASCADE => TRUE ); END; /
BEGIN --スキーマ単位の収集 DBMS_STATS.GATHER_SCHEMA_STATS ( OWNNAME => 'ユーザ名' ,OPTIONS => 'GATHER' ); END;
まぁ、必要なタイミングはそこまで多くは無いと思うけど、今回、DBの入れ替えやら何やらをやった際に、統計情報の更新をする必要があったので。
統計情報が更新されないと、テーブルの検索時の速度とかに影響が出てくるらしいので、Oracleインストールじのデフォルトだと、自動になってるみたい。
SELECT NAME , VALUE FROM V$PARAMETER WHERE NAME = 'statistics_level' ;
自動になってるかどうかの確認は上記SQLで。
TYPCALかALLが返ってこれば、自動設定になってる。