设为首页 加入收藏

TOP

SYS_FBA_为前缀表如何服务于Flashback Data Archive(五)
2015-08-31 20:00:13 来源: 作者: 【 】 浏览:254
Tags:SYS_FBA_ 前缀 如何 服务于 Flashback Data Archive
00500015C8E I
AAAJBRAAEAAAWjJAAB? ? 12723378739723? 12723378743708 000A000500015C8E I
AAAJBRAAEAAAWjJAAC? ? 12723378739723? 12723378743689 000A000500015C8E I
AAAJBRAAEAAAWjJAAC? ? 12723378743689? ? ? ? ? ? ? ? ? 000A000D00015C87 U


执行select * from t0516_5 as of scn 12723378743688语句时寻找过程大致如下:rowid='AAAJBRAAEAAAWjJAAA'的行12723378743688>=startscn,endscn为空,表示这行从表里取现值id=1、C3='AAA',无需访问archive table;
rowid='AAAJBRAAEAAAWjJAAB'的行endscn>12723378743688>=startscn,表示这行在scn:12723378743688时刻不在表里,需要访问archive table(SYS_FBA_HIST_36945)里rowid='AAAJBRAAEAAAWjJAAB' and XID=000A000500015C8E对应行获取before-image:id=2、C3='BBB'
rowid='AAAJBRAAEAAAWjJAAC'有两行,根据scn:12723378743688对应到startscn=12723378739723 and endscn=12723378743689这一行,然后去SYS_FBA_HIST_36945找到rowid='AAAJBRAAEAAAWjJAAC' and xid='000A000500015C8E'返回before-image:id=3、C3='CCC'


SCOTT@tstdb1-SQL> select * from t0516_5 as of scn 12723378743688;


? ? ? ? ID C3
---------- ---
? ? ? ? 2 BBB
? ? ? ? 3 CCC
? ? ? ? 1 AAA


/////////////Part 2. SYS_FBA_表结构说明////////////////
select owner,table_name,partitioned from dba_tables where table_name like '%36945';


OWNER? ? ? ? ? ? ? ? ? ? ? ? ? TABLE_NAME? ? ? ? ? ? ? ? ? ? PAR
------------------------------ ------------------------------ ---
SCOTT? ? ? ? ? ? ? ? ? ? ? ? ? SYS_FBA_HIST_36945? ? ? ? ? ? YES
SYS? ? ? ? ? ? ? ? ? ? ? ? ? ? SYS_MFBA_NHIST_36945? ? ? ? ? NO
SCOTT? ? ? ? ? ? ? ? ? ? ? ? ? SYS_FBA_TCRV_36945? ? ? ? ? ? NO
SCOTT? ? ? ? ? ? ? ? ? ? ? ? ? SYS_FBA_DDL_COLMAP_36945? ? ? NO


SYS_FBA_HIST_121239表是分区表,before-image保留在这张表里,为何提高访问性能oracle把它建成了分区表,初始只有一个分区


---SYS_FBA_HIST_36945采用的是range分区,endscn作为partition key
set linesize 100
select owner,table_name,PARTITIONING_TYPE,SUBPARTITIONING_TYPE from dba_part_tables where table_name='SYS_FBA_HIST_36945';
OWNER? ? ? ? ? ? ? ? ? ? ? ? ? TABLE_NAME? ? ? ? ? ? ? ? ? ? PARTITION SUBPARTIT
------------------------------ ------------------------------ --------- ---------
SCOTT? ? ? ? ? ? ? ? ? ? ? ? ? SYS_FBA_HIST_36945? ? ? ? ? ? RANGE? ? NONE


SCOTT@tstdb1-SQL> col column_name format a20
SCOTT@tstdb1-SQL> select name,column_name from dba_part_key_columns where name='SYS_FBA_HIST_36945';


NAME? ? ? ? ? ? ? ? ? ? ? ? ? COLUMN_NAME
------------------------------ --------------------
SYS_FBA_HIST_36945? ? ? ? ? ? ENDSCN


---存放历史数据的分区启用了compress for oltp方式的压缩?
set long 2000 linesize 150
col TABLE_OWNER format a20
col TABLE_NAME format a25
col partition_name format a15
col high_value format a40
select TABLE_OWNER,TABLE_name,PARTITION_NAME,compression,compress_for,COMPOSITE,HIGH_VALUE from dba_tab_partitions where table_name='SYS_FBA_HIST_36945';
TABLE_OWNER? ? ? ? ? TABLE_NAME? ? ? ? ? ? ? ? PARTITION_NAME? COMPRESS COMPRESS_FOR COM HIGH_VALUE
-------------------- ------------------------- --------------- -------- ------------ --- ----------------------------------------
SCOTT? ? ? ? ? ? ? ? SYS_FBA_HIST_36945? ? ? ? HIGH_PART? ? ? ENABLED? OLTP? ? ? ? NO? MAXVALUE


注:测试环境是11.2.0.3,如果是11.2.0.4及以后版本,因为引入了optimize data的功能,默认情况下创建的archive table是不压缩的,除非在create flashback archive时指定了optimize data,在11.2.0.4及以后可以在创建flashback archive时加入"optimize data"选项:create flashback archive fba0516_2 tablespace tbs0516_1 optimize data retention 1 day;


---SYS_MFBA_NHIST_36945、SYS_FBA_TCRV_36945表在RID字段上建有索引,数据量大的时候提高基于rowid的检索效率
SCOTT@tstdb1-SQL> select index_name,column_name from dba_ind_columns where table_name='SYS_FBA_HIST_36945';


no rows selected


SCOTT@ts

首页 上一页 2 3 4 5 6 7 8 下一页 尾页 5/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQL分表分区 下一篇alert日志中的两种ORA错误分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: