• ベストアンサー

大量にデータを更新するテーブルの統計情報について

大量にデータを更新するテーブルの統計情報の取得タイミングについてついて質問があります。 該当のテーブルはワークテーブルでテーブルの1/3程の大量データを毎回delete,insert,selectの順番で処理をおこなっています。 大量のデータを毎回更新しているのでselect文の際に統計情報が古いため実行計画が正しくなく処理が遅くなる可能性があるのでは無いかと心配しております。 統計情報は、取るべきでしょうか?取る場合は何時のタイミングで取るべきでしょうか? Oracle 9iを使用しています。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • taspon
  • ベストアンサー率69% (9/13)
回答No.2

統計情報を取得するなら、やはりselectの前だと思います。 ただ、ご質問の「ワークテーブル」が該当のプログラムのみでアクセスされるものなら、統計情報を取らないで運用するほうがよいかもしれません。 または、明示的に統計情報を取らないで「動的サンプリング」(select実行時にOracleが自分ですこしだけアナライズしてみる)の機能を利用させることも揮発性の高いテーブルには有効と思います。 動的サンプリングは9iR2からの機能だったと思います。(自分は利用したことがありませんが・・)

その他の回答 (1)

  • joih
  • ベストアンサー率35% (37/105)
回答No.1

質問の意味が良くわからないのですが、selectをかける前に統計情報を更新したほうがいいでしょう。 コストベースで運用しているのであれば、そういうのをあらかじめ組み込んであるのでは???

関連するQ&A