是否可以知道过去几天数据库表每天的大小变化



我需要知道过去一周特定表的大小每天增长多少?,SQL开发人员中是否有任何查询或统计工具来执行此操作。RDBMS是Oracle 11g Rac

Oracle 使用 MMON 后台进程来收集 AWR 统计信息。假设它没有被禁用(显示参数statistics_level应返回 TYPICAL 或 ALL,因为 BASIC 不收集建议或统计信息),您可以使用视图dba_hist_seg_stat和dba_hist_snapshot如下所示。相应地替换表名 (your_table_name) 和日期 (2019 年 1 月 21 日/2019 年 1 月 28 日):

select   obj.owner, obj.object_name, 
         to_char(sn.BEGIN_INTERVAL_TIME,'RRRR-MON-DD') start_day,
         sum(a.SPACE_USED_DELTA) block_increase_bytes
from     dba_hist_seg_stat a,
         dba_hist_snapshot sn,
         dba_objects obj
where    sn.snap_id = a.snap_id
and      obj.object_id = a.obj#
and      object_name = 'your_table_name'
and      end_interval_time between to_timestamp('21-JAN-2019','DD-MON-RRRR') 
         and to_timestamp('28-JAN-2019','DD-MON-RRRR')
group by obj.owner, obj.object_name, 
         to_char(sn.BEGIN_INTERVAL_TIME,'RRRR-MON-DD')
order by obj.owner, obj.object_name, start_day
/

注: block_increase_bytes中的负数表示表中的行数据已被删除或清除。

最新更新