[ORACLE]統計更新を強制的にする

投稿日:

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が返ってこれば、自動設定になってる。







-ORACLE

関連記事

[ORACLE]oracleのログの場所(リスナーログ、アラートログ)

ぶっちゃけ、ログの場所なんて普段意識してないわwww 存在は知ってるものの、ぶっちゃけ、普段からそんな場所など意識していたことがない。 もちろん、何かあったときは、ファイル検索で見つけりゃいいや~と思 …

ORACLEのMERGE INTOで、UPDATEは出来るのに、INSERTできない

最近、Oracleのエラーの話しか書いてない気がするw     便利というか、トランザクション内の処理も1つで済むので、MERGE INTO文を使うことがあります。 実際、 新規デ …

[C#]リストをカンマ区切りの文字列で出力する

リストの項目をカンマ区切りで出力したい 卵が先か鶏が先か~って話じゃないんですが、リストで出力した内容をカンマ区切りのデータにする必要が出てきたので、調べました。 List<string> …

ORACLEで「IMP-00013: DBAのみ別のDBAがエクスポートしたファイルをインポートできます。」の解決法。

客先DBのエクスポートしたものがインポートできずに、タイトルのエラーを吐く。 幸い、お客さんの目の前じゃなかったので、ゆっくり調べて解決できたけど、客先で発生したら困るよなぁ・・・ もともと英語のメッ …

ORACLEでDELETEとTRUNCATEのどちらを使うか。

未だに迷う。 例えば、テーブル全件削除をしたいときは delete * from tableA; delete文なら、こうだし。 truncate tableA; truncate文なら、こう。


カテゴリー