oracle查看undo使用量,Oracle undo表空间使用量为100%

在Toad中发现undo表空间undotbs1使用量已经达到100%,但是奇怪的是数据库并没有hang住,依然可以正常运转

1702e0713a3950bccc3e0b1112f1bb5e.png

通过Oracle提供的EM查看undotbs1表空间的使用,也达到了78.8

2f5365aa7c675493afdabdac1984c351.png

在上一篇文章中,我们介绍了undo表空间中区的3种状态:ACTIVE、EXPIRED、UNEXPIRED。在对其概念理解后,个人认为在未设置undo表空间retention guarantee的情况下,只要ACTIVE状态的区未达到100%,皆不会造成数据库hang住。

那么Toad中undotbs1为什么使用率达到100%,而EM为78.8呢?

通过追踪Toad及EM的对应SQL语句,发现Toad把3种状态都计算在计算在内了,而EM则计算了ACTIVE和EXPIRED两种状态。

通过查询状态为ACTIVE的区,发现数量为0:

SQL> select * from dba_undo_extents where status = 'ACTIVE';

OWNER SEGMENT_NAME TABLESPACE_NAME EXTENT_IDFILE_IDBLOCK_ID BYTES BLOCKS RELATIVE_FNO COMMIT_JTIME COMMIT_WTIME STATUS----- ------------- ---------------- ---------- ---------- ---------- ---------- ---------- ------------ ------------ -------------------- ---------

所以,可以认为:

1.Toad统计的undo表空间的使用率是不准确的;

2.EM统计了2种状态,个人认为在未设置undo表空间retention guarantee的情况下,只要统计ACTIVE状态的区即可,统计undo表空间使用率的SQL语句如下:

--统计ACTIVE状态的区占用率多少undo表空间

WITH DF AS(SELECTTABLESPACE_NAME,SUM(BYTES) BYTES,COUNT(*) CNT, --每个表空间数据文件的个数

DECODE(SUM(DECODE(AUTOEXTENSIBLE, 'NO', 0, 1)), 0, 'NO', 'YES') AUTOEXT --是否自动扩展

FROMDBA_DATA_FILESGROUP BYTABLESPACE_NAME

)SELECTD.TABLESPACE_NAME,round(NVL(A.BYTES / 1024 / 1024 / 1024, 0),1) all_tablespace_gb,round(NVL(U.BYTES, 0) / 1024 / 1024 / 1024 ,1) undo_tablespace_used_gb,round(NVL(A.BYTES - NVL(U.BYTES, 0), 0) / 1024 / 1024 / 1024,1) undo_tablespace_free_gb,round(NVL(U.BYTES / A.BYTES * 100, 0),1) "undo_tablespace_used_per %",

A.AUTOEXT,

D.STATUS,

A.CNT datafile_cnt,

D.CONTENTSFROMDBA_TABLESPACES D,

DF A,

(SELECTTABLESPACE_NAME,SUM(BYTES) BYTES --记录不可使用的undo segment:包括状态为active的区,不包括unexpired和expired

FROMDBA_UNDO_EXTENTSWHERE STATUS IN ('ACTIVE') --如果使用了retention guarantee特性,则还需统计状态为unexpired的区:WHERE STATUS IN (‘ACTIVE’,’UNEXPIRED’)GROUP BY TABLESPACE_NAME) U

WHERED.TABLESPACE_NAME= A.TABLESPACE_NAME(+) --左外连接(left join)

ANDD.TABLESPACE_NAME= U.TABLESPACE_NAME(+)ANDD.CONTENTS= 'UNDO'

ORDER BY 1

通过这种方法,我们可以统计出实际使用的undo表空间(extent状态为ACTIVE的部分),可以发现undotbs1表空间很空闲。

7732c699e8a825527b76ba62c688bc1f.png

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机。通过比赛的舞台,学生有机展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值