USER_TAB_MODIFICATIONS ビュー
テーブルへの挿入、更新、削除、TRUNCATE などについての統計情報に関するデータを提供するビュー
同じ分類のビューとして DBA_TAB_MODIFICATIONS(※)、ALL_TAB_MODIFICATIONS がある。
表がどのように変更されているかに関する統計情報を提供するビュー (OBJECT_TYPE がないのが少し残念)
| | | カラム名 | | データタイプ | 説明 |
○ | ○ | × | TABLE_OWNER | - | VARCHAR2(30) | 表の所有者 |
○ | TABLE_NAME | VARCHAR2(30) | 表の名前 |
○ | PARTITION_NAME | VARCHAR2(30) | パーティション名(普通の表の場合 NULL) |
○ | SUBPARTITION_NAME | VARCHAR2(30) | サブパーティション名(普通の表の場合 NULL) |
○ | INSERTS | NUMBER | 統計情報更新以後の挿入数(近似値) |
○ | UPDATES | NUMBER | 統計情報更新以後の更新数(近似値) |
○ | DELETES | NUMBER | 統計情報更新以後の削除数(近似値) |
○ | TIMESTAMP | DATE | 統計情報の最終更新日 |
○ | TRUNCATED | | VARCHAR2(3) | 統計情報更新以後に TRUNCATE されている(YES) か 否 (NO)か |
○ | DROP_SEGMENTS | - | NUMBER | 統計情報更新以後に削除されたパーティション、および、サブパーティションのセグメント数 |
これらの情報は MONITORING 属性がついた表のみが対象であり、統計情報が更新されるたびに内容がリセットされる。
情報の更新はリアルタイムではなく、約 3時間毎に更新される。
手動で情報更新したい場合には DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO を実行する。
SQL> exec DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;
PL/SQLプロシージャが正常に完了しました。
(※) DBA_TAB_MODIFICATIONS ビューは DBA ロールでは参照できない。(Oracle 11g R2)
DBA ロールを持つ一般ユーザーから実行
SQL> desc dba_tab_modifications
ERROR:
ORA-04043: オブジェクトdba_tab_modificationsは存在しません。
SQL> conn / as sysdba
接続されました。
SQL> desc dba_tab_modifications
名前 NULL? 型
----------------------------------------- -------- ----------------------------
TABLE_OWNER VARCHAR2(30)
TABLE_NAME VARCHAR2(30)
PARTITION_NAME VARCHAR2(30)
SUBPARTITION_NAME VARCHAR2(30)
INSERTS NUMBER
UPDATES NUMBER
DELETES NUMBER
TIMESTAMP DATE
TRUNCATED VARCHAR2(3)
DROP_SEGMENTS NUMBER
USER_TAB_MODIFICATIONS 関連