Oracle 数据变化量查询

news/2025/2/26 5:30:43

1. DBA_HIST_SEG_STAT可以看出对象的使用趋势,构造如下SQL查询出每个时间段内数据库对象的增长量

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;

DB_BLOCK_CHANGES_DELTA为块个数
在这里插入图片描述

2.查询某时间段内数据库对象的变化大小(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;

在这里插入图片描述

3.查看某个用户数据每日增长量

SELECT a.snap_id,
       c.tablespace_name ts_name,
       to_char(to_date(a.rtime, 'mm/dd/yyyy hh24:mi:ss'),
               'yyyy-mm-dd hh24:mi') rtime,
       round(a.tablespace_size * c.block_size / 1024 / 1024, 2) ts_size_mb,
       round(a.tablespace_usedsize * c.block_size / 1024 / 1024, 2) ts_used_mb,
       round((a.tablespace_size - a.tablespace_usedsize) * c.block_size / 1024 / 1024,
             2) ts_free_mb,
       round(a.tablespace_usedsize / a.tablespace_size * 100, 2) pct_used
  FROM dba_hist_tbspc_space_usage a,
       (SELECT tablespace_id,
               substr(rtime, 1, 10) rtime,
               max(snap_id) snap_id
          FROM dba_hist_tbspc_space_usage nb
         group by tablespace_id, substr(rtime, 1, 10)) b,
       dba_tablespaces c,
       v$tablespace d
 where a.snap_id = b.snap_id
   and a.tablespace_id = b.tablespace_id
   and a.tablespace_id = d.TS#
   and d.NAME = c.tablespace_name
   and to_date(a.rtime, 'mm/dd/yyyy hh24:mi:ss') >= sysdate - 30
 order by a.tablespace_id, to_date(a.rtime, 'mm/dd/yyyy hh24:mi:ss') desc;

在这里插入图片描述

4.查看整个实例的数据每日增长量

SELECT day,
       total_GB,
       used_GB,
       total_GB - used_GB free_GB,
       round(100 * used_GB / total_GB, 2) used_percent,
       case
         when (used_GB = used_GB - LAG(used_GB, 1, 0) OVER(ORDER BY day)) then
          null
         else
          used_GB - LAG(used_GB, 1, 0) OVER(ORDER BY day)
       end incr_GB
  from (select to_char(snap.END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff') day,
               round(sum(tsu.TABLESPACE_SIZE * dt.BLOCK_SIZE) /
                     (1024 * 1024 * 1024),
                     2) total_GB,
               round(sum(tsu.TABLESPACE_USEDSIZE * dt.BLOCK_SIZE) /
                     (1024 * 1024 * 1024),
                     2) used_GB
          from DBA_HIST_TBSPC_SPACE_USAGE tsu,
               DBA_HIST_SNAPSHOT          snap,
               V$TABLESPACE               vt,
               DBA_TABLESPACES            dt
         where tsu.SNAP_ID = snap.SNAP_ID
           and tsu.DBID = snap.DBID
           and snap.instance_number = 1
           and tsu.TABLESPACE_ID = vt.TS#
           and vt.NAME = dt.TABLESPACE_NAME
           and SUBSTR(to_char(END_INTERVAL_TIME, 'yyyy-mm-dd hh24:mi:ss.ff'),
                      12,
                      5) = '00:00'
         group by snap.END_INTERVAL_TIME
         order by snap.END_INTERVAL_TIME desc) a
 order by day desc;

在这里插入图片描述

参考:
https://www.cnblogs.com/lipeng20004/p/14323465.html
https://blog.csdn.net/demonson/article/details/125911073


http://www.niftyadmin.cn/n/5868050.html

相关文章

将VsCode变得顺手好用(1

目录 设置中文 配置调试功能 提效和增强相关插件 主题和图标相关插件 设置中文 打开【拓展】 输入【Chinese】 下载完成后重启Vs即可变为中文 配置调试功能 在随便一个位置新建一个文件夹,用于放置调试文件以及你未来写的代码,随便命名但切记不可用中…

Go基于协程池的延迟任务调度器

原理 通过用一个goroutine以及堆来存储要待调度的延迟任务,当达到调度时间后,将其添加到协程池中去执行。 主要是使用了chan、Mutex、atomic及ants协程池来实现。 用途 主要是用于高并发及大量定时任务要处理的情况,如果使用Go协程来实现每…

ELK搭建初入

ELK搭建: 1、安装ElasticSearch (用于存储收集到的日志信息) 解压安装包 tar -xzvf elasticsearch-8.17.2-linux-x86_64.tar.gz 启动es:bin/elasticsearch –d(默认端口号9200) 浏览器输入es地址。出现…

【工欲善其事】2025 年实现听书自由——基于 Kokoro-82M 的开源 TTS 工具 audiblez 本地部署实战

文章目录 2025 年实现听书自由——基于 Kokoro-82M 的开源 TTS 工具 audiblez 本地部署实战1 前言2 本地部署准备工作3 具体安装步骤4 命令行启动测试5 GUI 界面启动测试6 相关资源一站式下载 2025 年实现听书自由——基于 Kokoro-82M 的开源 TTS 工具 audiblez 本地部署实战 …

【Pandas】pandas Series add_suffix

Pandas2.2 Series Computations descriptive stats 方法描述Series.align(other[, join, axis, level, …])用于将两个 Series 对齐,使其具有相同的索引Series.case_when(caselist)用于根据条件列表对 Series 中的元素进行条件判断并返回相应的值Series.drop([lab…

第25周JavaSpringboot实战-电商项目 4.商品分类管理

商品分类模块开发笔记 模块功能概述 实现分类数据的 增删改查 功能核心难点: 分类的父子级目录结构递归实现多级分类查找列表展示顺序控制(从父级向子级递归) 接口说明 后台接口 1. 添加分类 请求地址: /admin/category/add 请求方法: …

从零开始:使用PyTorch构建DeepSeek R1模型及其训练详解

本文将引导你使用 PyTorch 从零开始构建 DeepSeek R1 模型,并详细解释模型架构和训练步骤。DeepSeek R1 是一个假设的模型名称,为了演示目的,我们将构建一个基于 Transformer 的简单文本生成模型。 1. 模型架构 DeepSeek R1 的核心是一个基…

maven Problem shading JAR的几个解决方案

1 现象 Error creating shaded jar: Problem shading JAR :xxxxxx.jar entry META-INF/versions/11/com/fasterxml/jackson/core/io/doubleparser/BigSignificand.class: java.lang.IllegalArgumentException -> [Help 1] 2 原因 这个问题通常是由于 maven-s…