因此,无法直接查询当前会话(session)的UNDO_RETENTION值,因为这个值是全局的,对所有会话都有效。 但是,你可以查询当前系统设置的UNDO_RETENTION值。这通常通过查询数据字典视图或动态性能视图来完成。以下是一个查询当前UNDO_RETENTION设置的示例SQL语句: sql SELECT VALUE FROM V$PARAMETER WHERE NAME = 'undo_retention...
1.首先查询当前环境的值 QL>showparameterUNDO_RETENTIONNAMETYPEVALUE---undo_retentioninteger900 结果是15分钟 2.在我们执行一些命令前,我们执行一下查询,看看当前undo信息 select status,sum(bytes)/1024||'KB' bytes from dba_undo_extents group by status SSTATUS BYTES --- --- EXPIRED 5312KB UNEXPIRED ...
根据数据库中最长事务长度的信息,可以给UNDO_RETENTION分配一个大致的时间。 可以通过v$undostat视图的maxquerylen列查询在过去的一段时间内,最长的查询执行的时间(以秒为单位)。UNDO_RETENTION参数中的时间设置应该至少与maxquerylen列中给出的时间一样长。 Oracle提供如下为新数据库设置撤销保留时间间隔的指导: 1、 ...
1)查询当前数据库中有关UNDO相关的信息 sys@ora10g> show parameter undo NAME TYPE VALUE --- --- --- undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1 此时系统默认的UNDO表空间是“UNDOTBS1”,我们调整到新创建的UNDOTBS_GUARANTEE表空间上; UNDO默认的保留时间是15...
通过查询V$UNDOSTAT(该视图记录4天以内的UNDO表空间使用情况,超过4天可以查询DBA_HIST_UNDOSTAT视图)的tuned_undoretention (该字段在10G版本才有,9I是没有的)字段可以得到Oracle 根据事务量(如果是文件不可扩展,则会考虑剩余空间)采样后的自动计算出最佳的 retenton 时间.。
我们知道,OB是使用MVCC的,RC隔离级别下,一条查询的sql语句发起的开始会生成对应的读取快照点,该查询后续的查询都是基于该快照执行的。 那么问题来了,一个大的查询,在查询期间对应原来快照点的数据可能已经发生了变更且已触发转储,但undo_retention默认是0,表示每次
A. undo数据传输到快速恢复区之后一致性查询的一段时间 B. undo变过期的后的一段时间 C. 如果可用空闲undo表空间足够,事物commit的undo数据保留的很小一段时间 D. 事物comit改变数据从undo表空间传到临时表空间的一段时间 相关知识点: 试题来源: 解析 C.如果可用空闲undo表空间足够,事物commit的undo数据保留的...
它通常以秒为单位,说明事务可以在系统中保持挂起状态的时间。如果未提交事务在undo_retention时间到期后仍然存在,则会自动回滚并释放回滚段空间。该参数的默认值是900秒(15分钟),但可以根据需要进行更改。延长undo_retention可以防止长时间的查询发生“snapshot too old”错误,同时也会增加系统的undo数据存储成本。
从Oracle10g开始,如果设置UNDO_RETENTION为0,那么Oracle会自动调整UNDO_RETENTION的值以满足运行最长查询的需要。