統計情報のロックと失効について
皆様
こんにちは。
統計情報のロックと失効について、教えていただけますでしょうか。
バッチ処理でtruncate、insertを頻繁に実行するため、あるタイミングで統計情報をロックしました。
ただ気になるのが、DBA_TAB_STATISTICSテーブルのSTALE_STATS列が、失効となっています。
こちらは、
統計情報をロックしても、閾値を超えるデータ変更があった場合には、統計情報は失効となる。
ただ、新たな統計情報を取得しないので、実行計画は変わらず、パフォーマンスを保てる。
との認識となりますでしょうか。
====================================================================
SQL> select TABLE_NAME,NUM_ROWS,to_char(LAST_ANALYZED,'YYYYMMDD HH24:MI:SS'),STATTYPE_LOCKED,STALE_STATS
2 from dba_tab_statistics where owner='TEST00' order by 1;
TABLE_NAME NUM_ROWS TO_CHAR(LAST_ANAL STATT STA
------------------------------ ---------- ----------------- ----- ---
T01 100000 20130405 22:01:52 ALL YES ★ロックされており、失効となっている。
T02 99999 20130411 22:01:34 NO
T03 10 20130405 22:01:48 NO
T04 10 20130405 22:01:49 NO
====================================================================
また、上記認識で間違いが無い場合、環境を新しいサーバに移行する際(バージョンアップ)、
ロックされた統計情報を移行し、バージョンアップ(exec DBMS_STATS.UPGRADE_STAT_TABLE ('ユーザ名', 'STAT_TABLE');)
することで、現環境と同じ実行計画で稼動できるとの認識となりますでしょうか。
恐れ入りますが、ご存知の方がいらっしゃいましたら教えていただけますでしょうか。