Oracle表变化趋势追踪记录

#DBA_HIST_SEG_STAT可以看出对象的使用趋势,构造如下SQL查询出每个时间段内数据库对象的增长量,其中DB_BLOCK_CHANGES_DELTA为块个数 
select c.SNAP_ID,
       to_char(c.END_INTERVAL_TIME, 'yyyy-mm-dd') SNAP_TIME,
       a.OWNER,
       a.OBJECT_NAME,
       a.OBJECT_TYPE,
       b.DB_BLOCK_CHANGES_DELTA
  from dba_objects a,
       (select SNAP_ID, obj#, DB_BLOCK_CHANGES_DELTA
          from DBA_HIST_SEG_STAT
         where DB_BLOCK_CHANGES_DELTA > 20000
         order by snap_id desc, DB_BLOCK_CHANGES_DELTA desc) b,
       DBA_HIST_SNAPSHOT c
 where a.object_id = b.obj#
   and object_type = 'TABLE'
   and b.SNAP_ID = c.SNAP_ID
 order by DB_BLOCK_CHANGES_DELTA 


#下面的SQL查询出某个时间段内,数据库对象的变化大小,单位以换算成GB
select a.OBJECT_NAME,
       to_char(c.END_INTERVAL_TIME, 'yyyy-mm-dd') SNAP_TIME,
       sum(b.DB_BLOCK_CHANGES_DELTA) / 1024 / 1024 GB
  from dba_objects a,
       (select  
         SNAP_ID, obj#, DB_BLOCK_CHANGES_DELTA
          from DBA_HIST_SEG_STAT
         where DB_BLOCK_CHANGES_DELTA > 20000
         order by snap_id desc, DB_BLOCK_CHANGES_DELTA desc) b,
       DBA_HIST_SNAPSHOT c
 where a.object_id = b.obj#
   and object_type = 'TABLE'
   and b.SNAP_ID = c.SNAP_ID
 group by a.OBJECT_NAME, c.END_INTERVAL_TIME
 order by GB
 

 

简单介绍下DBA_HIST_SEG_STAT 。DBA_HIST_SEG_STAT视图内记录了数据库实例启动以来段的变化信息,该视图的数据来自于v$segstat 

Column Datatype  NULL  Description 

SNAP_ID   NUMBER      Unique snapshot ID  
DBID   NUMBER      Database ID for the snapshot  
INSTANCE_NUMBER   NUMBER      Instance number for the snapshot  
TS#   NUMBER      Tablespace number  
OBJ#   NUMBER      Dictionary object number  
DATAOBJ#   NUMBER      Data object number  
LOGICAL_READS_TOTAL   NUMBER      Cumulative value for logical reads  
LOGICAL_READS_DELTA   NUMBER      Delta value for logical reads  
BUFFER_BUSY_WAITS_TOTAL   NUMBER      Cumulative value for buffer busy waits  
BUFFER_BUSY_WAITS_DELTA   NUMBER      Delta value for buffer busy waits  
DB_BLOCK_CHANGES_TOTAL   NUMBER      Cumulative value for db block changes  
DB_BLOCK_CHANGES_DELTA   NUMBER      Delta value for db block changes  
PHYSICAL_READS_TOTAL   NUMBER      Cumulative value for physical reads  
PHYSICAL_READS_DELTA   NUMBER      Delta value for physical reads  
PHYSICAL_WRITES_TOTAL   NUMBER      Cumulative value for physical writes  
PHYSICAL_WRITES_DELTA   NUMBER      Delta value for physical writes  
PHYSICAL_READS_DIRECT_TOTAL   NUMBER      Cumulative value for physical reads direct  
PHYSICAL_READS_DIRECT_DELTA   NUMBER      Delta value for physical reads direct  
PHYSICAL_WRITES_DIRECT_TOTAL   NUMBER      Cumulative value for physical writes direct  
PHYSICAL_WRITES_DIRECT_DELTA   NUMBER      Delta value for physical writes direct  
ITL_WAITS_TOTAL   NUMBER      Cumulative value for ITL waits  
ITL_WAITS_DELTA   NUMBER      Delta value for ITL waits  
ROW_LOCK_WAITS_TOTAL   NUMBER      Cumulative value for row lock waits  
ROW_LOCK_WAITS_DELTA   NUMBER      Delta value for row lock waits  
GC_CR_BLOCKS_SERVED_TOTAL   NUMBER      Cumulative value for global cache CR blocks served  
GC_CR_BLOCKS_SERVED_DELTA   NUMBER      Delta value for global cache CR blocks served  
GC_CU_BLOCKS_SERVED_TOTAL   NUMBER      Cumulative value for global cache current blocks served  
GC_CU_BLOCKS_SERVED_DELTA   NUMBER      Delta value for global cache current blocks served  
GC_BUFFER_BUSY_TOTAL   NUMBER      Cumulative value for global cache buffer busy  
GC_BUFFER_BUSY_DELTA   NUMBER      Delta value for global cache buffer busy  
GC_CR_BLOCKS_RECEIVED_TOTAL   NUMBER      Cumulative value for global cache CR blocks received  
GC_CR_BLOCKS_RECEIVED_DELTA   NUMBER      Delta value for global cache CR blocks received  
GC_CU_BLOCKS_RECEIVED_TOTAL   NUMBER      Cumulative value for global cache current blocks received  
GC_CU_BLOCKS_RECEIVED_DELTA   NUMBER      Delta value for global cache current blocks received  
SPACE_USED_TOTAL   NUMBER      Cumulative value for space used  
SPACE_USED_DELTA   NUMBER      Delta value for space used  
SPACE_ALLOCATED_TOTAL   NUMBER      Cumulative value for space allocated  
SPACE_ALLOCATED_DELTA   NUMBER      Delta value for space allocated  
TABLE_SCANS_TOTAL   NUMBER      Cumulative value for table scans  
TABLE_SCANS_DELTA   NUMBER      Delta value for table scans 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,你可以使用以下代码来追踪Oracle数据库的数据变化记录: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class OracleChangeLog { public static void main(String[] args) { try { // 连接数据库 String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; String username = "your-username"; String password = "your-password"; Connection connection = DriverManager.getConnection(url, username, password); // 创建Statement对象 Statement statement = connection.createStatement(); // 执行查询 String query = "SELECT * FROM your-table"; ResultSet resultSet = statement.executeQuery(query); // 遍历结果集 while (resultSet.next()) { // 获取每行的数据 int id = resultSet.getInt("id"); String name = resultSet.getString("name"); // 其他列... // 打印或处理数据 System.out.println("ID: " + id + ", Name: " + name); } // 关闭连接 resultSet.close(); statement.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 请注意替换代码中的以下部分: - `url`:根据你的数据库连接信息进行修改,确保连接到正确的数据库。 - `username`:替换为你的数据库用户名。 - `password`:替换为你的数据库密码。 - `your-table`:替换为你想要追踪变化的数据库名。 这段代码会查询指定的数据库,并遍历结果集以打印或处理数据。你可以根据需要进行进一步的操作,例如将数据存储到文件或其他数据结构中。 请确保你已经正确地导入了Oracle的JDBC驱动,并将其添加到项目的依赖中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值