- 最后登录
- 2014-3-6
- 在线时间
- 36 小时
- 威望
- 0
- 金钱
- 109
- 注册时间
- 2012-6-12
- 阅读权限
- 10
- 帖子
- 45
- 精华
- 0
- 积分
- 0
- UID
- 494
|
8#
发表于 2013-3-4 14:25:07
Maclean Liu(刘相兵 发表于 2013-2-28 20:46
若 CR_XID = Current XID and ENV_UBA < CR_UBA
虽然本事务在该块中不可见,但是 该块版本 对应指定snaps ...
谢谢您的指点。对于cr块的产生。我有一个问题想咨询一下:
在单用户环境先,我执行了一个update 操作,发现系统也产生了cr块。请问这个是基于什么原因啊?为什么不在另一个用户查询的时候生成cr块?
例:
SQL> create table t1(a1 int);
表已创建。
SQL> insert into t1 values(1);
已创建 1 行。
SQL> select
2 o.object_name,b.dbarfil,b.dbablk,b.tch
3 ,decode(state,0,'free',1,'xcur',2,'scur',3,'cr', 4,'read',5,'mrec'
4 ,6,'irec',7,'write',8,'pi') state
5 , blsiz blocks
6 from x$bh b , dba_objects o
7 where b.obj = o.data_object_id
8 and o.object_name = 'T1' and state!=0
9 ;
OBJECT_NAM DBARFIL DBABLK TCH STATE BLOCKS
---------- ---------- ---------- ---------- ----- ----------
T1 1 92762 1 xcur 8192
T1 1 92761 2 xcur 8192
SQL> commit;
提交完成。
SQL> update t1 set a1=2;
已更新 1 行。
SQL> select
2 o.object_name,b.dbarfil,b.dbablk,b.tch
3 ,decode(state,0,'free',1,'xcur',2,'scur',3,'cr', 4,'read',5,'mrec'
4 ,6,'irec',7,'write',8,'pi') state
5 , blsiz blocks
6 from x$bh b , dba_objects o
7 where b.obj = o.data_object_id
8 and o.object_name = 'T1' and state!=0
9 ;
OBJECT_NAM DBARFIL DBABLK TCH STATE BLOCKS
---------- ---------- ---------- ---------- ----- ----------
T1 1 92762 1 xcur 8192
T1 1 92762 2 cr 8192
T1 1 92761 3 xcur 8192
在上述的过程中,在执行了update 之后,本地Session 进行查询,发现了系统产生了一个cr块。这个是基于什么考虑? |
|