博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
drop索引是否进回收站的测试
阅读量:2064 次
发布时间:2019-04-29

本文共 2587 字,大约阅读时间需要 8 分钟。

背景:一次项目中发现单独drop一张表的索引,此索引不进回收站。

结论:经过测试发现,单独drop索引,确实不会进回收站;但若drop建有索引的表,索引和表会一起进回收站。

 

0、前提:回收站机制打开

SQL> show parameter recyclebin

NAME                                 TYPE        VALUE

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

recyclebin                           string      on

 

1、单独删除表的索引,索引将不会进入回收站

SQL> CREATE TABLE TEST.TEST_RECYCLEBIN_1C(ID NUMBER);

TABLE CREATED.

SQL> CREATE INDEX TEST.IDX_ID_1C ON TEST.TEST_RECYCLEBIN_1C(ID);

INDEX CREATED.

SQL> INSERT INTO  TEST.TEST_RECYCLEBIN_1C VALUES(1);

1 ROW CREATED.

SQL> COMMIT;

COMMIT COMPLETE.

SQL> DROP INDEX TEST.IDX_ID_1C;

INDEX DROPPED.

SQL> SELECT COUNT(*) FROM DBA_RECYCLEBIN;

COUNT(*)

----------

       0

 

2、若直接删含有索引的表,且没purge表,则表和索引都会进入回收站

SQL> CREATE TABLE TEST.TEST_RECYCLEBIN (ID NUMBER PRIMARY KEY);

TABLE CREATED.

SQL> INSERT INTO TEST.TEST_RECYCLEBIN VALUES(3);

1 ROW CREATED.

SQL> COMMIT;

COMMIT COMPLETE.

SQL> DROP TABLE TEST.TEST_RECYCLEBIN;

TABLE DROPPED.

SQL> SELECT COUNT(*) FROM DBA_RECYCLEBIN;

COUNT(*)

----------

       2

SQL> SELECT ORIGINAL_NAME FROM DBA_RECYCLEBIN;

ORIGINAL_NAME

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

TEST_RECYCLEBIN

SYS_C0011092

 

若flashback table TEST.TEST_RECYCLEBIN,恢复的index_name还是回收站的object_name,需要rename索引SQL> select index_name from dba_indexes where table_name='TEST_RECYCLEBIN';

INDEX_NAME

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

BIN$2HqeHGo3TtLgMx41LQpWaw==$0

 

alter index test."BIN$2HqeHGo3TtLgMx41LQpWaw==$0" rename to IDX_ID;

 

3、purge table或者purge index可以彻底删除索引

 

4、回收站的定义

CREATE OR REPLACE FORCE VIEW "SYS"."DBA_RECYCLEBIN" ("OWNER", "OBJECT_NAME", "ORIGINAL_NAME", "OPERATION", "TYPE", "TS_NAME", "CREATETIME", "DROPTIME",  

"DROPSCN", "PARTITION_NAME", "CAN_UNDROP", "CAN_PURGE", "RELATED", "BASE_OBJECT", "PURGE_OBJECT", "SPACE") AS

select u.name, o.name, r.original_name,

     decode(r.operation, 0, 'DROP', 1, 'TRUNCATE', 'UNDEFINED'),

     decode(r.type#, 1, 'TABLE', 2, 'INDEX', 3, 'INDEX',

                     4, 'NESTED TABLE', 5, 'LOB', 6, 'LOB INDEX',

                     7, 'DOMAIN INDEX', 8, 'IOT TOP INDEX',

                     9, 'IOT OVERFLOW SEGMENT', 10, 'IOT MAPPING TABLE',

                     11, 'TRIGGER', 12, 'CONSTRAINT', 13, 'Table Partition',

                     14, 'Table Composite Partition', 15, 'Index Partition',

                     16, 'Index Composite Partition', 17, 'LOB Partition',

                     18, 'LOB Composite Partition',

                     'UNDEFINED'),

     t.name,

     to_char(o.ctime, 'YYYY-MM-DD:HH24:MI:SS'),

     to_char(r.droptime, 'YYYY-MM-DD:HH24:MI:SS'),

     r.dropscn, r.partition_name,

     decode(bitand(r.flags, 4), 0, 'NO', 4, 'YES', 'NO'),

     decode(bitand(r.flags, 2), 0, 'NO', 2, 'YES', 'NO'),

     r.related, r.bo, r.purgeobj, r.space

from sys."_CURRENT_EDITION_OBJ" o, sys.recyclebin$ r, sys.user$ u, sys.ts$ t

where o.obj# = r.obj#

and r.owner# = u.user#

and r.ts# = t.ts#(+)

 

转载地址:http://ymwmf.baihongyu.com/

你可能感兴趣的文章
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
被废弃的dispatch_get_current_queue
查看>>
什么是ActiveRecord
查看>>
有道词典for mac在Mac OS X 10.9不能取词
查看>>
关于“团队建设”的反思
查看>>
利用jekyll在github中搭建博客
查看>>
Windows7中IIS简单安装与配置(详细图解)
查看>>
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
ExecutorService 线程池 newFixedThreadPool newSingleThreadExecutor newCachedThreadPool
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>