現在の日付で変更されているテーブルを追跡する次のクエリがあります。
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;`
結果
ご覧のとおり、クエリは正常に機能しますが、最後のプロセスで最後のトランザクションタイプ(追加、削除、または変更)を示すフィールド「LAST_CHANGE_TYPE」を追加するなど、さらに複雑にしたいと思います。
DWを監視するのに役立つ別のクエリも良いでしょう。
すべての可能なアクションを監視するように、たとえばserが何を行ったかを追跡します。
アクションがリストされている場合、各アクションのユーザーと日付を確認する必要があります。
|オブジェクト|タイプ|ソース|操作タイプ|ユーザー|日付|
|制約| PK |テーブルA |ドロップ|スコット| 2011/11/11 |
|テーブル|テーブル|テーブルB |変更| HR | 2002/05/05 |
現在、すべての提案を受け付けています
ジャスティンが言ったように、all_tab_modificationsは、統計が最後に収集されてからの、テーブルへの変更の数のリアルタイムの正確な数ではありません
この種のイベントを追跡することをお勧めします。以下を参照してください Link
Oracle Database 11g:Real-Time SQL Monitoring を参照してください
Oracle Database 11gで導入されたリアルタイムSQLモニタリングは、リソースを大量に消費する長時間の並列SQLステートメントで実行時のパフォーマンスの問題を特定するための非常に効果的な方法を提供します。 Interactive Enterprise Manager画面には、すぐに使用できるように追跡された新しい詳細なSQL統計を使用して、SQL実行の詳細が表示されます。本番システムのパフォーマンスは低下しません。実行計画の各ステップの統計は、経過時間、CPU時間、読み取りと書き込みの数、I/O待機時間、その他のさまざまな待機時間などの主要なパフォーマンスメトリックによって追跡されます。これにより、DBAはSQLの実行を以前よりも深く分析し、監視対象のSQLステートメントに最適なチューニング戦略を決定できます。