tdb1-SQL> select index_name,column_name from dba_ind_columns where table_name='SYS_MFBA_NHIST_36945';
INDEX_NAME? ? ? ? ? ? ? ? ? ? COLUMN_NAME
------------------------------ --------------------
SYS_MFBA_NHIST_36945_IDX? ? ? RID
SCOTT@tstdb1-SQL> select index_name,column_name from dba_ind_columns where table_name='SYS_FBA_TCRV_36945';
INDEX_NAME? ? ? ? ? ? ? ? ? ? COLUMN_NAME
------------------------------ --------------------
SYS_FBA_TCRV_IDX_36945? ? ? ? RID
SCOTT@tstdb1-SQL> select index_name,column_name from dba_ind_columns where table_name='SYS_FBA_DDL_COLMAP_36945';
no rows selected
/////////////Part 3. SYS_FBA_表是如何被使用的/////////////
1、如果SYS_FBA_已经由FBDA进程创建,在flashback query的时候就会去访问SYS_FBA系列表,从执行计划中很容易看出来
explain plan for select * from t0516_5 as of scn 12723378743688;
SQL> set pagesize 100 linesize 150
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 2508115242
---------------------------------------------------------------------------------------------------------------
| Id? | Operation? ? ? ? ? ? ? ? | Name? ? ? ? ? ? ? | Rows? | Bytes | Cost (%CPU)| Time? ? | Pstart| Pstop |
---------------------------------------------------------------------------------------------------------------
|? 0 | SELECT STATEMENT? ? ? ? |? ? ? ? ? ? ? ? ? ? |? ? 3 |? ? 48 |? ? 21? (10)| 00:00:01 |? ? ? |? ? ? |
|? 1 |? VIEW? ? ? ? ? ? ? ? ? ? |? ? ? ? ? ? ? ? ? ? |? ? 3 |? ? 48 |? ? 21? (10)| 00:00:01 |? ? ? |? ? ? |
|? 2 |? UNION-ALL? ? ? ? ? ? ? |? ? ? ? ? ? ? ? ? ? |? ? ? |? ? ? |? ? ? ? ? ? |? ? ? ? ? |? ? ? |? ? ? |
|? 3 |? ? PARTITION RANGE SINGLE|? ? ? ? ? ? ? ? ? ? |? ? 2 |? ? 54 |? ? 14? (0)| 00:00:01 |? ? 1 |? ? 1 |
|*? 4 |? ? TABLE ACCESS FULL? ? | SYS_FBA_HIST_36945 |? ? 2 |? ? 54 |? ? 14? (0)| 00:00:01 |? ? 1 |? ? 1 |
|*? 5 |? ? FILTER? ? ? ? ? ? ? ? |? ? ? ? ? ? ? ? ? ? |? ? ? |? ? ? |? ? ? ? ? ? |? ? ? ? ? |? ? ? |? ? ? |
|? 6 |? ? MERGE JOIN OUTER? ? |? ? ? ? ? ? ? ? ? ? |? ? 1 |? ? 40 |? ? 7? (29)| 00:00:01 |? ? ? |? ? ? |
|? 7 |? ? ? SORT JOIN? ? ? ? ? |? ? ? ? ? ? ? ? ? ? |? ? 1 |? ? 7 |? ? 3? (34)| 00:00:01 |? ? ? |? ? ? |
|*? 8 |? ? ? TABLE ACCESS FULL? | T0516_5? ? ? ? ? ? |? ? 1 |? ? 7 |? ? 2? (0)| 00:00:01 |? ? ? |? ? ? |
|*? 9 |? ? ? SORT JOIN? ? ? ? ? |? ? ? ? ? ? ? ? ? ? |? ? 2 |? ? 66 |? ? 4? (25)| 00:00:01 |? ? ? |? ? ? |
|* 10 |? ? ? TABLE ACCESS FULL? | SYS_FBA_TCRV_36945 |? ? 2 |? ? 66 |? ? 3? (0)| 00:00:01 |? ? ? |? ? ? |
---------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
? 4 - filter(("OPERATION"<>'D' OR "OPERATION" IS NULL) AND ("STARTSCN"<=12723378743688 OR "STARTSCN"
? ? ? ? ? ? ? IS NULL) AND "ENDSCN">12723378743688 AND "ENDSCN"<=12723378801092)
? 5 - filter("STARTSCN"<=12723378743688 OR "STARTSCN" IS NULL)
? 8 - filter("T"."VERSIONS_STARTSCN" IS NULL)
? 9 - access("RID"(+)=ROWIDTOCHAR("T".ROWID))
? ? ? filter("RID"(+)=ROWIDTOCHAR("T".ROWID))
? 10 - filter(("ENDSCN"(+) IS NULL OR "ENDSCN"(+)>12723378801092) AND ("STARTSCN"(+)<12723378801092 OR
? ? ? ? ? ? ? "STARTSCN"(+) IS NULL))
29 rows selected.
2、如果flashback archive被purge了,那么flashback query还是会通过SYS_FBT系列表访问before-image
SQL> explain plan for select * from t0516_7 as of scn 12723393908514;
Explained.
SQL> set pagesize 100 linesize 150
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------
Plan