1. 程式人生 > >閃回drop恢復表後sql運行計劃異常

閃回drop恢復表後sql運行計劃異常

for 恢復 per style lec name ora acl ont



-----正常運行計劃
set autotrace traceonly
set linesize 1000

select /*+index(t idx_object_id)*/ * from t where object_id=19;
Execution Plan
----------------------------------------------------------
Plan hash value: 2041828949
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT
| | 1 | 207 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T | 1 | 207 | 2 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | IDX_OBJECT_ID | 1 | | 1 (0)| 00:00:01 |
---------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_ID"=19)


----在誤操作drop 表t 後。馬上flashback drop;
可是之前對應的索引已經被rename了。可是oracle依舊能夠這個這個rename後的索引

SQL> drop table t;
SQL> flashback table t to before drop;


-----異常運行計劃
SQL> select * from t where object_id=19;
Execution Plan
----------------------------------------------------------
Plan hash value: 329240726
--------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT
| | 1 | 207 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T | 1 | 207 | 2 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | BIN$GVgNy7hUF5HgUFAK8RIOcA==$0 | 1 | | 1 (0)| 00:00:01 |------貌似性能沒有大影響
--------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_ID"=19)


SQL> select index_name,status from user_indexes where table_name=‘T‘;
BIN$GVgNy7hUF5HgUFAK8RIOcA==$0 VALID


------重命名索引

alter index "BIN$GVgNy7hUF5HgUFAK8RIOcA==$0" rename to IDX_OBJECT_ID;



閃回drop恢復表後sql運行計劃異常