日期:2014-05-16 浏览次数:20534 次
提问者:xmas171688
提问时间:2005-1-13 14:45:18
问题:
在下列2个表中 V$ROLLNAME,V$ROLLSTAT 谁能帮我解释下 V$ROLLSTAT 的列 每列是干吗的。恳请帮忙! 主要是想知道 哪列是 回滚段大小 !
整理:
每列是干什么的,我想,官网给得很明了:http://docs.oracle.com/cd/B28359_01/server.111/b28320/dynviews_2143.htm#REFRN30210
V$ROLLSTAT中的常用列:
1)usn:回滚段标识符
2)rssize:回滚段默认大小
3)xacts:活动事务数
在一段时间内增量用到的列:
WRITES:回滚段写入数(单位:bytes)
SHRINKS:回滚段收缩次数
EXTENDS:回滚段扩展次数
WRAPS:回滚段翻转(wrap)次数
GETS:获取回滚段头次数
WAITS:回滚段头等待次数
通过usn,我们可以将v$rollname和v$rollstat连接起来,来查看更有意义的回滚段的统计信息。如:
SELECT n.name, s.extents, s.rssize, s.optsize, s.hwmsize, s.xacts, s.status FROM v$rollname n, v$rollstat s WHERE n.usn = s.usn;
注意:
通过花费时间除以翻转次数,你可以得到一次回滚段翻转(wrap)的平均用时。此方法常用于在长查询中指定合适的回滚段大小以避免'Snapshot Too Old'错误。同时,通过查看extends和shrinks列可以看出optimal是否需要增加。
提问者:一路随行
提问时间:2010-5-7 10:57:32
问题:
各位大侠,我想请教一下,那些操作可以回滚?commit后还可以回滚?那些操作会自动提交啊?
整理:
dml可以回滚
commit后不能回滚
ddl、dcl会自动提交
提问者:jvkojvko
提问时间:2011-6-28 11:06:48
问题:
insert 数据了15个小时以后没有成功,然后手工停止了,然后现在回滚了一天一夜还没有好, 表还是被锁着,有好的解决办法没? insert的数据量大概3000W
整理:
首先,我们须从这个问题中得到经验教训:大批量的数据插入,切记要每隔一段时间提交,控制事务的长度!否则,只能only wait。
提问者:lyxing
提问时间:2009-1-18 08:54:51
问题:
服务器是红帽LINUX企业4,oracle9204,发现有一个数据库的回滚空间一直在增长,都用了98.63%了,不过也没有见有什么异常情况。会是哪里的问题呢?原来是1G的回滚,后来扩到2G,现在又快满了
整理:
原因:
1. 你存在大的事务需要回滚;
2. show parameter undo_retention ; --这种情况下减小undo_retention的值
3. 回滚段中内容说明一下:
insert 只记录rowid
update 只记录更新字段的旧值(前镜像)。--update太多
delete 产生最多的回滚,记录整行记录。 --delete太多
提问者:lmin_432930
提问时间:2008-5-19 16:29:46
问题: