1

Oracle 9iデータベースには、もうここで働いていない人によってずっと前に作成されたマテリアライズドビューがいくつかあります。Oracleがクエリを提供するためにこれらのビューを使用しているかどうかを判断する簡単な(または任意の)方法はありますか?それらが使用されなくなった場合は、それらを削除したいと思います。しかし、これらのビューが、ランダムなレポートを数時間以内に実行できるようにするものであるという事実の後で発見したくありません。私が夢見ている答えは次のようなものです

SELECT last_used_date FROM dba_magic
WHERE materialized_view_name = 'peters_mview'

さらに素晴らしいのは、マテリアライズドビューを使用している実際のSQLクエリを教えてくれるものです。私は私がより少なく解決しなければならないかもしれないことを理解します。

10gが必要な解決策があれば、すぐにアップグレードするので、それらの答えも役に立ちます。

4

3 に答える 3

6

Oracle監査は、ドキュメントに従って構成された後、これを通知できます。構成したら、「AUDIT SELECTON{マテリアライズドビューの名前}」で有効にします。監査証跡は、SYSスキーマのAUD$テーブルにあります。

于 2009-11-25T16:25:14.497 に答える
0

監査以外の方法の1つは、1回の更新後、次の更新の前にv $ segment_statisticsビューを読み取り、読み取りがあったかどうかを確認することです。自動統計収集ジョブも考慮する必要があります。

于 2009-11-26T07:31:46.573 に答える
0

V $ SQLAREAテーブルには、データベースによって実行されたクエリを識別するのに役立つ2つの列があります。

SQL_TEXT-VARCHAR2(1000)-現在のカーソルのSQLテキストの最初の1000文字SQL_FULLTEXT-CLOB-現在のカーソルのSQLテキストのすべての文字

この列を使用して、前述のマテリアライズドビューを使用してクエリを見つけることができます

于 2009-11-26T11:57:59.700 に答える