首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle 11g中的架构增长

Oracle 11g中的架构增长
EN

Stack Overflow用户
提问于 2013-02-05 05:13:27
回答 1查看 5K关注 0票数 0

在Oracle中获得模式增长的最佳方法是什么?我尝试使用了许多dba_hist_表,但似乎没有一个表能让我了解特定时间(7天)内模式的大小和增长情况。这些表似乎包含表空间增长信息,而不是@ schema级别。

有人能帮帮忙吗?

尝试了下面的表格,

dba_hist_tablespace_stat、dba_hist_seg_stat、dba_hist_seg_stat_obj、dba_hist_snapshot等。

EN

回答 1

Stack Overflow用户

发布于 2013-02-05 05:25:22

检查此查询:

代码语言:javascript
复制
SELECT b.tsname tablspc_name ,
  MAX(b.used_size_mb) cur_used_size_mb ,
  ROUND(AVG(inc_used_size_mb),2) avg_incr_mb
FROM
  (SELECT a.days,
    a.tsname ,
    used_size_mb ,
    used_size_mb - LAG (used_size_mb,1) OVER ( PARTITION BY a.tsname ORDER BY a.tsname,a.days) inc_used_size_mb
  FROM
    (SELECT TO_CHAR(sp.begin_interval_time,'MM-DD-YYYY') days ,
      ts.tsname ,
      MAX(ROUND((tsu.tablespace_usedsize* dt.block_size )/(1024*1024),2)) used_size_mb
    FROM dba_hist_tbspc_space_usage tsu ,
      dba_hist_tablespace_stat ts ,
      dba_hist_snapshot sp,
      dba_tablespaces dt
    WHERE tsu.tablespace_id    = ts.ts#
    AND tsu.snap_id            = sp.snap_id
    AND ts.tsname              = dt.tablespace_name
    AND sp.begin_interval_time > sysdate-7
    GROUP BY TO_CHAR(sp.begin_interval_time,'MM-DD-YYYY'),
      ts.tsname
    ORDER BY ts.tsname,
      days
    ) a
  ) b
GROUP BY b.tsname
ORDER BY b.tsname;

并按所有者分组:

代码语言:javascript
复制
SELECT  ds.owner as owner, 
  MAX(b.used_size_mb) cur_used_size_mb ,
  ROUND(AVG(inc_used_size_mb),2) avg_incr_mb
FROM
  (SELECT a.days,
    a.tsname ,
    used_size_mb ,
    used_size_mb - LAG (used_size_mb,1) OVER ( PARTITION BY a.tsname ORDER BY a.tsname,a.days) inc_used_size_mb
  FROM
    (SELECT TO_CHAR(sp.begin_interval_time,'MM-DD-YYYY') days ,
      ts.tsname ,
      MAX(ROUND((tsu.tablespace_usedsize* dt.block_size )/(1024*1024),2)) used_size_mb
    FROM dba_hist_tbspc_space_usage tsu ,
      dba_hist_tablespace_stat ts ,
      dba_hist_snapshot sp,
      dba_tablespaces dt
    WHERE tsu.tablespace_id    = ts.ts#
    AND tsu.snap_id            = sp.snap_id
    AND ts.tsname              = dt.tablespace_name
    AND sp.begin_interval_time > sysdate-7
    GROUP BY TO_CHAR(sp.begin_interval_time,'MM-DD-YYYY'),
      ts.tsname
    ORDER BY ts.tsname,
      days
    ) a
  ) b
JOIN dba_segments ds on ds.tablespace_name = b.tsname
GROUP BY ds.owner
ORDER BY ds.owner;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14695754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档