web-dev-qa-db-ja.com

DMLおよびDDLの毎日のイベントを追跡する方法

現在の日付で変更されているテーブルを追跡する次のクエリがあります。

SELECT TABLE_OWNER, 
       TABLE_NAME, 
       INSERTS,
       UPDATES,
       DELETES,
       TIMESTAMP AS `LAST_CHANGE`
FROM  ALL_TAB_MODIFICATIONS
WHERE TO_CHAR(TIMESTAMP,'DD/MM/YYYY') = TO_CHAR(sysdate,'DD/MM/YYYY') 
ORDER BY LAST_CHANGE DESC;`

結果

enter image description here

ご覧のとおり、クエリは正常に機能しますが、最後のプロセスで最後のトランザクションタイプ(追加、削除、または変更)を示すフィールド「LAST_CHANGE_TYPE」を追加するなど、さらに複雑にしたいと思います。

DWを監視するのに役立つ別のクエリも良いでしょう。

すべての可能なアクションを監視するように、たとえばserが何を行ったかを追跡します。

  • 可能な場合は制約の種類を指定できる場合は制約を削除する
  • パッケージ本体の変更

アクションがリストされている場合、各アクションのユーザーと日付を確認する必要があります。

|オブジェクト|タイプ|ソース|操作タイプ|ユーザー|日付|

|制約| PK |テーブルA |ドロップ|スコット| 2011/11/11 |

|テーブル|テーブル|テーブルB |変更| HR | 2002/05/05 |

現在、すべての提案を受け付けています

5
Bill N. Varelli

ジャスティンが言ったように、all_tab_modificationsは、統計が最後に収集されてからの、テーブルへの変更の数のリアルタイムの正確な数ではありません

この種のイベントを追跡することをお勧めします。以下を参照してください Link

1

Oracle Database 11g:Real-Time SQL Monitoring を参照してください

Oracle Database 11gで導入されたリアルタイムSQLモニタリングは、リソースを大量に消費する長時間の並列SQLステートメントで実行時のパフォーマンスの問題を特定するための非常に効果的な方法を提供します。 Interactive Enterprise Manager画面には、すぐに使用できるように追跡された新しい詳細なSQL統計を使用して、SQL実行の詳細が表示されます。本番システムのパフォーマンスは低下しません。実行計画の各ステップの統計は、経過時間、CPU時間、読み取りと書き込みの数、I/O待機時間、その他のさまざまな待機時間などの主要なパフォーマンスメトリックによって追跡されます。これにより、DBAはSQLの実行を以前よりも深く分析し、監視対象のSQLステートメントに最適なチューニング戦略を決定できます。

0
Greycom