您的位置:首页 > 其它

ORACEL空间管理实验9:空间管理汇总--索引和表的扫描/闪回时的块管理方式

2014-01-28 13:48 302 查看

1.补充--关于dba_objects中的 DATA_OBJECT_ID 和OBJECT_ID字段:

truncate table test1;

alter table test1 move tablespace tp2;

select object_id,data_object_id from dba_objects where object_name='TEST1';

OBJECT_ID DATA_OBJECT_ID

---------- --------------

     22959          23144

truncate和移动到不同表空间时DATA_OBJECT_ID会变化。

但是当表内无数据时,truncate不会导致DATA_OBJECT_ID会加一。


 2.各种数据读取方式涉及的I/O

详细描述全表扫描是如何完成的(只描述I/O相关)
I. 从数据字典dba_segments找到 段头,

段头:在段头读取两样信息:高高水点、Extent Map(区地图)(Auxillary Map)

II. 根据段头中的Auxillary Map,依次读每个区的数据。

描述索引Index RANGE SCAN的流程

Root块的块号=索引段段头块号+1

I. 查找seg$等数据字典,确定索引段段头位置

II. 段头块号加1,得到Root块

描述索引Index Full SCAN的流程

等于索引范围扫描

有序,为了“顺序”,不能多块读

索引Index Fast Full SCAN的流程

等同于表的全扫描

I. 段头:在段头读取两样信息:高高水点、Extent Map(区地图)(Auxillary Map)

II. 根据段头中的Auxillary Map,依次读每个区的数据。
无序,可以多块读

3.打开闪回时DROP和TRUNCATE的不同块管理

未打开闪回时没有不同。

TRUNCATE和DROP-打开闪回时,具体做了哪些操作???

DROP-打开闪回时:改数据字典表中相应字段tab$,seg$,ext$,col$,将表系统命名bin$开头的,空间并未释放。打开闪回时此时查询可用区的方法是全部扫描位图区。附带会有删除索引约束触发器等,也可能会慢。

此时,可以查询到闪回DROP之前的数据。

TRUNCATE :修改表所有区对应的二进制位--位图区变为1变为0

实验一:

使用游标,exec open :x时先进行解析,print :x时提取数据

BYS@ bys3>var x refcursor

BYS@ bys3>exec open :x for select count(*) from test6;

PL/SQL procedure successfully completed.

BYS@ bys3>print :x

  COUNT(*)

----------

         2

BYS@ bys3>exec open :x for select count(*) from test6;

PL/SQL procedure successfully completed.

此时在会话2执行BYS@ bys3>drop table test6;

在会话1查看游标

BYS@ bys3>print :x

  COUNT(*)

----------

         2
因为开启回收站时,DROP 表只是将表改名-修改数据字典表tab$,seg$,ext$,在数据文件中并未改变数据块头OBJ的、标记,所以可以查到

#######

实验二:

会话2把表闪回DROP

BYS@ bys3>flashback table test6 to before drop;

Flashback complete.

会话一:执行游标:

BYS@ bys3>exec open :x for select count(*) from test6;

PL/SQL procedure successfully completed.

会话二:

BYS@ bys3>truncate table test6;

Table truncated.

会话一:查询游标

BYS@ bys3>print :x

ERROR:

ORA-08103: object no longer exists

no rows selected
报错是因为:TRUNCATE删除数据,修改数据字典表,同时将数据块头的OBJ清除,所以查询时报对象不存在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: