首页 » ORACLE, ORACLE [C]系列 » Oracle 21c 新特性:Object Activity Tracking System

Oracle 21c 新特性:Object Activity Tracking System

在Oracle Online文档的monitor database 章节中有描述Oracle 数据库可以自动跟踪某些SCHEMA的对象(例如表和物化视图)的活动和使用情况。

对象活动跟踪系统 (OATS) 跟踪与数据库对象相关的各种活动。可以在数据库级别和可插入数据库 (PDB) 级别执行跟踪。跟踪的活动包括对表的 DML 操作、表和分区扫描、分区维护操作 (PMOP)、物化视图重写和刷新以及索引等辅助结构的使用。统计信息用于支持automated database 功能,例如自动物化视图、Access Advisors。使用 DBMS_ACTIVITY 包中的过程和函数来控制 OATS 捕获的信息。

要启用对象活动跟踪系统:
将 STATISTICS_LEVEL 初始化参数设置为 TYPICAL 或 ALL。

可以在以下数据字典视图中查看 OATS 跟踪的统计信息:

SQL> @d DBA_ACTIVITY
Show data dictionary views and x$ tables matching the expression "DBA_ACTIVITY"...

TABLE_NAME                     COMMENTS
------------------------------ --------------------------------------------------------------------------------
DBA_ACTIVITY_CONFIG            Object Activity Tracking Configuation
DBA_ACTIVITY_MVIEW             Object Activity Tracking for Materialized Views
DBA_ACTIVITY_SNAPSHOT_META     Object Activity Tracking Metadata for Snapshot Intervals
DBA_ACTIVITY_TABLE             Object Activity Tracking for Tables

SQL> @st DBA_ACTIVITY_CONFIG

CON_DBNAME                     PARAMETER_NAME                 PARAMETER_ LAST_UPDATED_TIME                        LAST_UPDAT
------------------------------ ------------------------------ ---------- ---------------------------------------- ----------
CDB$ROOT                       ACTIVITY_INTERVAL_MINUTES      15         27-JUL-21 07.16.07.000 PM                SYS
CDB$ROOT                       ACTIVITY_RETENTION_DAYS        400        27-JUL-21 07.16.07.000 PM                SYS
CDB$ROOT                       ACTIVITY_SPACE_PERCENT         5          27-JUL-21 07.16.07.000 PM                SYS
CDB$ROOT                       ACTIVITY_SYS_TABLES            NO         27-JUL-21 07.16.07.000 PM                SYS

SQL> desc DBMS_ACTIVITY
PROCEDURE CONFIGURE
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 PARAMETER_NAME                 VARCHAR2                IN
 PARAMETER_VALUE                VARCHAR2                IN
 CON_DBNAME                     VARCHAR2                IN     DEFAULT
FUNCTION CREATE_SNAPSHOT RETURNS NUMBER
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 ALL_INSTANCES                  BOOLEAN                 IN     DEFAULT
 CON_DBNAME                     VARCHAR2                IN     DEFAULT
FUNCTION DELETE_SNAPSHOTS RETURNS BOOLEAN
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 BEFORE_SNAP_ID                 NUMBER                  IN
 CON_DBNAME                     VARCHAR2                IN     DEFAULT
FUNCTION DELETE_SNAPSHOTS RETURNS BOOLEAN
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 BEFORE_TIME                    TIMESTAMP               IN
 CON_DBNAME                     VARCHAR2                IN     DEFAULT

The database objects whose activities are tracked include tables and materialized views. Different types of activities include row insert, delete and update, table scan, load and truncate, partition maintenance operations (create, drop, move, split, merge, and exchange), materialized view rewrite and refresh.

跟踪类型
精确跟踪:以 100% 的准确度记录活动。在多处理器环境中需要某种形式的原子更新或某种锁存来获得精确的跟踪。 OATS 通常避免精确跟踪,除非客户需要那种精确度。
近似跟踪:几乎在所有情况下都会考虑一项活动。近似跟踪的一个例子是活动计数器的脏更新。不执行锁定或闩锁,并且在更改计数器时不使用原子操作。但是,脏更新会导致更新丢失,从而导致计数不足。
Probabilistic Tracking:一个活动以一定的概率被采样,当它成为样本的一部分时就被考虑在内。概率跟踪产生的活动数据不太准确,但会阻止频繁的跟踪操作
发生跟踪:记录某个时间间隔内发生的某些活动。具体而言,事件跟踪提供的信息表明特定对象活动在给定时间间隔内至少发生了一次,而无需说明它发生了多少次。
事务和回滚的计数器效果:除了精确跟踪计数器外,其他类型的计数器都不是事务性的或受回滚影响的。这意味着如果交易失败,近似计数器可能仍会记录来自该交易的任何操作。

打赏

目前这篇文章还没有评论(Rss)

我要评论