oracle 删除表、表空间、用户时,如何释放磁盘空间
truncate table tablename DROP STORAGE;
drop
执行drop table xx 语句
drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉。这样,回收站里的表信息就可以被恢复,或彻底清除。
通过查询回收站user_recyclebin获取被删除的表信息,然后使用语句
flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop [rename to <new_table_name>];
将回收站里的表恢复为原名称或指定新名称,表中数据不会丢失。
若要彻底删除表,则使用语句:drop table <table_name> purge;
清除回收站里的信息
清除指定表:purge table <table_name>;
清除当前用户的回收站:purge recyclebin;
清除所有用户的回收站:purge dba_recyclebin;
不放入回收站,直接删除则是:drop table xx purge;
---------------------
truncate
例如:truncate table XX
Truncate不支持回滚,并且不能truncate一个带有外键的表,如果要删除首先要取消外键,然后再删除。
truncate table 后,有可能表空间仍没有释放,可以使用如下语句:
alter table 表名称 deallocate UNUSED KEEP 0;
注意如果不加KEEP 0的话,表空间是不会释放的。
例如:
alter table F_MINUTE_TD_NET_FHO_B7 deallocate UNUSED KEEP 0;
或者:
TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能释放表空间。
例如: truncate table test1 DROP STORAGE;
收缩物理文件大小
alter database datafile '/data/phonedb/datafile/dev_tb19.dbf' resize 25000M;
最新文章
- 【转】虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
- mysql不支持事务
- Javascript 基础--数组
- 黑马程序员——JAVA基础之简述多线程,两种创建多线程的方式
- 展讯CEO:低毛利生存 由中低端转向高端
- android sdk manager无法更新
- 机器学习实践之Logistic回归
- 【一天一道LeetCode】#44. Wildcard Matching
- 如何修改新建脚本模板-ScriptTemplates(Unity3D开发之十五)
- Redis的消息发布和订阅
- ssm 出现 Method threw &#39;org.apache.ibatis.binding.BindingException&#39; exception.Invalid bound statement (not found)……
- [蓝桥杯]PREV-7.历届试题_连号区间数
- python网络爬虫抓取动态网页并将数据存入数据库MySQL
- 9-sort使用时的错误
- 使用B::Deparse模块对perl代码反汇编
- Thinking in java note1
- centos 7.2 安装apache,mysql,php5.6
- Python高级编程之生成器(Generator)与coroutine(二):coroutine介绍
- lintcode-172-删除元素
- Python通过PhantomJS获取JS渲染后的网页源代码