清理回收站
回收站是逻辑存储容器,依赖于原有表所占空间。如果不对回收站进行清除操作,回收站中的表对象会一直存在,导致空间一直被占用。
回收站提供PURGE
命令来清除回收站对象,以及原有的DROP
数据库/用户/模式也会清除回收站对象,从而释放空间。
包含以下五种方式:
- 表
- 索引
- 当前用户的所有对象
- 当前库下所有用户的所有对象
- 删除库/用户/模式
表
清理回收站时,与此表相关的索引和触发器也同时清理。若是存在同名表,则清理第一个进入回收站的表。
语法格式
sql
PURGE TABLE old_tab_name/"recycle_tab_name"
示例
sql
SQL> PURGE TABLE INDEX_TABLE4;
Execute successful.
Use time:29 ms.
索引
清理回收站时,若是存在同名表的同名索引,则清理最早进入回收站的索引。
说明:
主键索引无法删除。
语法格式
sql
PURGE INDEX old_tab_name.old_idx_name/"recycle_tab_name"."recycle_idx_name"
示例
sql
SQL> PURGE INDEX INDEX_TABLE4.INDEX_TABLE4;
Execute successful.
Use time:26 ms.
当前用户的所有对象
语法格式
sql
PURGE RECYCLEBIN;
示例
sql
SQL> PURGE RECYCLEBIN;
Execute successful.
Use time:11 ms.
当前库下所有用户的所有对象
当前用户需要DBA权限。
语法格式
sql
PURGE DBA_RECYCLEBIN;
示例
sql
SQL> PURGE DBA_RECYCLEBIN;
Execute successful.
Use time:12 ms.
删除库/用户/模式
删除库、用户和模式时,回收站中若存在该库、用户和模式的所属对象,也会从回收站中删除。