回滚段测试
来源:互联网 发布:宁波海关数据 编辑:程序博客网 时间:2024/06/03 20:26
今天做了个回滚段的测试,来观察回滚段的使用情况:
1. 先看回滚段的一些设置:自动扩展关闭,回滚段使用率达到99%,undo表空间的RETENTION为NOGUARANTEE(即不一定保证undo_retention设置的undo保留时间)
SQL> SELECT t.TABLESPACE_NAME,t.AUTOEXTENSIBLE FROM Dba_Data_Files t WHERE t.TABLESPACE_NAME='UNDOTBS1';
TABLESPACE_NAME AUT
------------------------------ ---
UNDOTBS1 NO
SQL> SELECT t.retention FROM Dba_Tablespaces t WHERE t.tablespace_name='UNDOTBS1';
RETENTION
-----------
NOGUARANTEE
2. 再看看回滚段各个区的状态:可以看到未过期的有3915.38(如果按undo_retention设置的时间来看,应该是早就过期了,因为这是我昨天产生的数据,只是oracle没人用的时候懒得回收)
SELECT T.TABLESPACE_NAME,
T.STATUS,
ROUND(SUM(T.BYTES)/1024/1024,2) UNDO_SIZE
FROM DBA_UNDO_EXTENTS T
GROUP BY T.TABLESPACE_NAME,T.STATUS;
UNDOTBS1 UNEXPIRED 3915.38
UNDOTBS1 EXPIRED 474.25
3.同样用上面的语句,来采样各个状态的变化:
UNDOTBS1 UNEXPIRED3915.38
UNDOTBS1 EXPIRED458.63
UNDOTBS1 ACTIVE 45.75
1 UNDOTBS1UNEXPIRED3915.38
2 UNDOTBS1 EXPIRED 201.69
3 UNDOTBS1 ACTIVE 302.38 ----可见oracle在无力扩展的情况下,是会先重用EXPIRED的空间
1UNDOTBS1UNEXPIRED19.31
2 UNDOTBS1 EXPIRED 3938.56
3 UNDOTBS1 ACTIVE 461.56 ----可见EXPIRED空间不够时,就会使用UNEXPIRED的空间,注意这里未过期并不一定说明其未超过undo_retention设置的undo保留时间,或 许只是oracle在悠闲的时候懒得去转换EXPIRED与UNEXPIRED的状态,所以即使undo表空间的RETENTION设置成了GUARANTEE,也有可能使用UNEXPIRED的空间(因为里面不一定都是未过期的内容)
1UNDOTBS1UNEXPIRED19.31
2 UNDOTBS1 EXPIRED 3341.69
3 UNDOTBS1 ACTIVE 1058.44
实验证明了我在UNDO_RETENTIOIN文章里面说明的回滚段使用规律。。。。
- 回滚段测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试
- 测试~!
- 测试
- 测试
- 测试
- 有12个球,其中有一个是假球,且与其它球的重量不同。用一个无法码天平称三次找出这个球,并确定比其它球重,或是轻。
- POJ1564(DFS构造法) Sum It Up
- Codeforces Round #192 (Div. 2)-A. Cakeminator
- 线程池中利用函数指针对任务的动态绑定
- Codeforces Round #192 (Div. 2)-B. Road Construction
- 回滚段测试
- python 赋值
- MapReduce编程基础
- struts1配置动态actionForm
- Search a 2D Matrix
- 无穷数的定义
- mac下matlab编译mex
- 从零开始学C++之模板(四):用模板实现单例模式、模板方式实现动态创建对象
- Hibernate学习笔记(3)——hibernate操作数据库的步骤和核心接口