/ /テーブルの統計情報がロックされているのはなぜですか? - oracle11g、データベース・パフォーマンス

テーブル統計がロックされているのはなぜですか? - oracle11g、データベース・パフォーマンス

私は混乱しています。なぜなら、統計は多くのスキーマのいくつかのテーブルで収集されていないからです。 これらのテーブルは前回の夜間に分析されました。 自動オプティマイザ統計ジョブ 有効になります。 私はこれを受け取って手動で統計を収集しようとしたときにこれを認識しました:

ora-20005 object statistics are locked

チューニング・アドバイザが注文した後、長時間実行される問合せの統計が収集されます。

この統計情報をロックするにはデフォルトで無効にすることができますか?私は誰もこれをやっていないと仮定します。なぜなら、このような行動の利点は長期的な視点ではないからです。


いくつかの研究の後、部分的な答えが見つかりました: https://blogs.oracle.com/optimizer/entry/maintaining_statistics_on_large_partitioned_tables

私はまた、毎晩実行されるパーティション化プロシージャによってパーティション化された表の統計がロックされていることを発見しました。

dbms_stats.lock_table_stats(...)

私は良いか悪い練習かと思いますか?私は以前はそれが良いと思っていましたが、Oracle 11g以降は全く意味がありません。 私は、インクリメンタル統計管理(Incremental Statistics Maintenance)を用いてアプローチを導入しようと試みるドキュメント)代わりに私は考えられていないグローバルな統計情報収集を無効にする...

回答:

回答№1は4

なぜ「全く意味がない」とあなたは信じていますか?

統計のロックが良いか悪いか練習。おそらく、過去の誰かが、統計のロックが解決されたという問題を特定していたのではないかと、それがまだ問題であるかどうかを調べる必要があります。たとえば、大量の一時データを持つ表がある場合は、表が比較的満杯のときに統計を収集し、表がほとんど空で原因が発生した場合に自動統計収集ジョブが誤って実行されないように統計をロックすることができますテーブルがいっぱいになると、非常に高価なテーブルスキャンが実行されます。

解決された問題がパーティション表のグローバル統計を収集するのが遅いため、増分統計保守を使用するほうがより良い解決策になります。ただし、増分統計のメンテナンスはデフォルトの動作ではないため、代替アプローチは「非推奨」と考えるのは間違いです。特に、お客様のニーズを満たす既存のソリューションがある場合。