• 闪回drop恢复表后sql运行计划异常




    -----正常运行计划
    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;



  • 相关阅读:
    SVG
    GML、SVG、VML的比较
    用VS.NET中的测试工具测试ASP.NET程序
    Ajax.NET 初步应用
    解决“未能创建 Mutex”的问题(转)
    .net捕获全局异常并且记录日志、多线程方式发送邮件提醒
    DataTable导出到Excel时身份证号信息自动转换为科学计数法的解决方案
    js三级联动地址选择
    .net通过一般处理程序模拟用户控件数据保持、Ispostback 【第二版将html与ashx文件分开】
    .net通过一般处理程序模拟用户控件数据保持、Ispostback
  • 原文地址:https://www.cnblogs.com/llguanli/p/7190398.html
Copyright © 2020-2023  润新知