为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 138
【操作系统】: 海光麒麟
【CPU】: 海光麒麟V10
【问题描述】*:
.roll表空间使用方法和总大小,
1.120G Roll 够不够8T 数据库使用,
2. 120G 是哪些SQL 占用的,能否提供sql检查,
3.8T 数据库大小 roll 一般设成多大为合适,是否要监控roll表空间使用率,超过90%就加数据文件?
1.如果是持续增长到120G,需要查看roll表空间中对象purge的速度,查看v$purge、V$PURGE_PSEG_OBJ、V$PURGE_PSEG_TAB 中待purge的对象是不是持续的上升,如果purge的速度过慢,会造成roll增长,需要排查磁盘IO
2.可以通过V$PURGE_PSEG_TAB 查看待purge的表对象,待purge的对象就是当前占用roll的对象。
比如你增删改表数据,没有提交的话 就会先放到roll表空间中,提交后会清空,他的大小和总数据量没有关系,和你一次修改数据的量有关系,并且他如果不够用的话是会自动扩展的。
--查询没提交的sql
select t1.sql_text, t1.state , t1.trx_id, t2.ins_cnt, t2.upd_cnt,t2.del_cnt, t2.upd_ins_cnt
From v$sessions t1, v$trx t2 where t1.trx_id=t2.id and t1.state ='IDLE' and t2.status='ACTIVE'
and (ins_cnt>0 or upd_cnt>0 or del_cnt>0 or upd_ins_cnt>0);