获得表空间增长量和增长率的脚本

对于涉及到数据库的人员,管理员等 都会关心一点 就是每天数据的增长多少,增长率是多少?

SELECT A.NAME, B.TABLESPACE_ID,B.DATETIME,B.USED_SIZE_MB,B.INC_MB,
       CASE WHEN SUBSTR(INC_RATE,1,1)='.' THEN '0'||INC_RATE
            WHEN SUBSTR(INC_RATE,1,2)='-.' THEN '-0'||SUBSTR(INC_RATE,2,LENGTH(INC_RATE))  
            ELSE INC_RATE
       END AS INC_RATEX
  FROM V$TABLESPACE A, 
       (
           SELECT TABLESPACE_ID,DATETIME,
                  USED_SIZE_MB,  
                  (DECODE(PREV_USE_MB,0,0,USED_SIZE_MB)-PREV_USE_MB) AS  INC_MB, 
                  TO_CHAR(ROUND((DECODE(PREV_USE_MB,0,0,USED_SIZE_MB)-PREV_USE_MB)/DECODE(PREV_USE_MB,0,1,PREV_USE_MB)*100,2))||'%' AS INC_RATE
         FROM
         (
           SELECT TABLESPACE_ID, 
                  TRUNC(TO_DATE(RTIME, 'mm/dd/yyyy hh24:mi:ss')) DATETIME, 
                  MAX(TABLESPACE_USEDSIZE * 8 / 1024) USED_SIZE_MB,
                  LAG(MAX(TABLESPACE_USEDSIZE * 8 / 1024),1,0) OVER(PARTITION BY TABLESPACE_ID ORDER BY TRUNC(TO_DATE(RTIME, 'mm/dd/yyyy hh24:mi:ss')) ) AS PREV_USE_MB
             FROM DBA_HIST_TBSPC_SPACE_USAGE
            WHERE TRUNC(TO_DATE(RTIME, 'mm/dd/yyyy hh24:mi:ss')) > TRUNC(SYSDATE - 30)
            GROUP BY TABLESPACE_ID, TRUNC(TO_DATE(RTIME, 'mm/dd/yyyy hh24:mi:ss'))
          
         ) 
       ) B
 WHERE A.TS# = B.TABLESPACE_ID
 ORDER BY B.TABLESPACE_ID,DATETIME;

效果如下:



前提是必须有这个视图存在,不过10G以上都有. 可惜这个视图存的数据才最近9天的.

create or replace view dba_hist_tbspc_space_usage as
select tb.snap_id, tb.dbid, tablespace_id, tablespace_size,
       tablespace_maxsize, tablespace_usedsize, rtime
  from (select distinct snap_id, dbid
          from WRM$_SNAPSHOT where status = 0) sn,
       WRH$_TABLESPACE_SPACE_USAGE tb
  where     sn.snap_id         = tb.snap_id
        and sn.dbid            = tb.dbid;
comment on table DBA_HIST_TBSPC_SPACE_USAGE is 'Tablespace Usage Historical Statistics Information';


为了获得长时间的数据 建议大家亲自动手把视图( dba_hist_tbspc_space_usage)的数据保存在固定表中. 

建个过程,跑个JOB.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 阻滞增长模型是一种描述生物群体增长和环境因素影响的数学模型,可以用来预测生物群体的未来发展趋势。在MATLAB中,可以使用ode45函数求解阻滞增长模型。 阻滞增长模型的一般形式为: dN/dt = rN(1-N/K) - λN 其中,N是生物群体的数量,t是时间,r是生长率,K是生物群体的容量,λ是死亡率。 在MATLAB中,可以使用以下代码进行求解: ``` function dy = logistic(t,y) r = 0.1; % 生长率 K = 1000; % 容量 lambda = 0.05; % 死亡率 dy = r*y*(1-y/K)-lambda*y; end [t,y] = ode45(@logistic,[0 50],500); plot(t,y) xlabel('时间') ylabel('生物群体数量') title('阻滞增长模型') ``` 在上述代码中,使用ode45函数求解阻滞增长模型,并使用plot函数绘制生物群体数量随时间的变化趋势图。 ### 回答2: MATLAB阻滞增长模型是一种用于描述生物发展、人口增长或其他社会现象的模型。它基于阻塞、增长和死亡这三个主要因素,通过设定阻滞增长的阈值,来预测某一群体的增长趋势。 在该模型中,群体的增长受到一定的限制,一旦达到阻滞阈值,增长将减缓甚至停止。这个阻滞阈值可以是环境的承载能力、资源的匮乏、疾病的传播等因素。当阻滞发生时,群体内的个体数将会趋于稳定,这被称为“平衡状态”。 为了描述阻滞增长模型,我们可以使用微分方程或差分方程,其中增长率取决于每个因素的影响。在MATLAB中,可以使用函数和脚本实现这些方程,并建立相应的模型。通过改变不同参数的值,可以观察到不同的增长趋势。 MATLAB提供了丰富的绘图和分析工具,可以用于可视化和分析阻滞增长模型的结果。通过图表,我们可以清晰地看到群体增长的变化,以及阻滞发生的时刻和持续时间。 总之,MATLAB阻滞增长模型是一种用于描述群体增长的模型,它考虑了阻滞、增长和死亡等因素的影响。通过使用MATLAB的函数、脚本、绘图和分析工具,可以实现该模型并进行进一步研究和分析。 ### 回答3: MATLAB中的阻滞增长模型是一种用于描述生物群体或经济增长的模型,它考虑到了资源的有限性和个体之间的相互作用。 这个模型基于下面的假设:增长速度和资源供应之间存在关系。当资源充足时,个体可以以正常的速度生长和繁殖;但是当资源有限时,个体数量的增长会受到限制。 在MATLAB中,可以使用一些函数和算法来模拟和分析阻滞增长模型。首先,需要确定模型的基本参数,例如初始个体数量、资源供应的大小和增长速率等。 接下来,可以使用MATLAB中的差分方程或微分方程来描述模型的动态演化过程。通过对方程进行数值求解,可以得到模型的时间演化曲线。 另外,还可以使用MATLAB中的绘图函数来可视化模型的结果。例如,可以绘制个体数量随时间变化的曲线,以及资源供应和个体数量之间的关系。 最后,可以使用MATLAB中的统计函数和分析工具来对模型进行进一步的分析。例如,可以计算个体数量的平均增长率、变异系数和相关性等。 总之,使用MATLAB可以方便地建立阻滞增长模型并进行分析和可视化。这对于研究生物群体或经济增长等问题具有重要的意义。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值