技术开发 频道

Oracle10g新特性——闪回表

管理回收站
    一旦哪些没有被真正删除的对象占满了表空间将会怎样呢?其实答案很简单:如果表空间被回收站中的数据占满了,并且数据文件也无法再扩展了(即产生了表空间压力)。那么回收站中的对象将会以“先入先出”(FIFO)的原则被自动清除掉。并且,依赖表的对象(如索引)将会比表对象先清除。

    同样的,当存在用户配额时也会发生表空间压力的情况。当一个用户的配额空间被占满了,尽管此时表空间还可能有足够的空间,系统也会以FIFO的原子释放回收站中属于这个用户的对象。

    另外,还有多种途径来手工控制回收站。比如可以用对象的原有名字从回收站中清除指定对象:

PURGE TABLE ABC

   或者用对象被删除后系统自动重命名的名字来指定清除它:

PURGE TABLE “BIN$XXUGsbYvSqa8Mrd6GstP+g==$0

    清除表时,同时也会清除依赖这张表的约束,如索引。可以指定只清除表相应的约束,如:

PURGE INDEX IDX_TEST

    此外,还可以将整个表空间的回收站内容全部清除:

PURGE TABLESPACE RING

也可以清除某个表空间上的回收站中某个用户的对象:

PURGE TABLESPACE RING USER TEST


当用某个普通用户登录时,只会清除它自己的对象。

PURGE RECYCLEBIN

当以DBA身份登录时,可以清除所有表空间上回收站

PURGE DBA_RECYCLEBIN
0
相关文章