服务器空间不够,网上搜到有人问相似的问题,单表300G的数据,想根据delete 加约束条件删除部分数据,但是大家都知道delete不会释放表空间,请问有什么好的方法么?导入导出的感觉不太实际,一是数据太大,二是系统也在实时跑的,肯定有影响。delete操作我已经在做了,就几百万几百万的删记录,但是空间不释放的。这操作是一同事让我做的,我跟他说了delete不释放空间的,他说让我先删着,是不是他晚上还做了其他释放空间的操作了?不然有什么意义。
类似MSSQL的收缩数据库后数据库就明显变小很多,oracle有什么方式吗?大侠们给点意见吧,我自己现场试试效果user_segments表里查看表占用的空间
类似MSSQL的收缩数据库后数据库就明显变小很多,oracle有什么方式吗?大侠们给点意见吧,我自己现场试试效果user_segments表里查看表占用的空间
解决方案 »
- 关于ORACLE11G表DEFAULT属性使用的一个问题
- 求一段代码 用C#就好
- oracle对一个列分类查询
- XP下oracle不能安装!!!急。。。。
- 请教: 关于交叉列表中使用变量作为列名
- ORACLE8 sum函数问题
- Oracle Sql 脚本中函数如何返回一个索引表,大侠帮帮忙,急
- 【请帮忙】Redhat9+Oracle8.1.7: lsnrctl start出错
- pl/sql 存储过程问题 不能insert
- 请问Oracle是不是不能在P4的机器上安装?我在好几台P4机器上都不行:<
- 一个表有600万数据,insert 一批 大量的重复的数据,是不是会有性能问题?
- 数据库小白求救,生产数据库宕机,重启后恢复,求原因。
或者在线重定义
truncate table 后,有可能表空间仍没有释放,可以使用如下语句: alter table 表名称 deallocateunused keep 0; 注意如果不加keep 0的话,表空间是不会释放的
alter table test2 shrink space;
网上看了资料又发现问题,说是shrink 之后,表对应的对象都会实效,
注意:alter table XXX enable row movement语句会造成引用表XXX的对象(如存储过程、包、视图等)变为无效。执行完成后,最好执行一下utlrp.sql来编译无效的对象。
想请教下utlrp.sql 是个啥玩意????????
方法2.delete表之后在根据当前表空间大小,重新设置表空间的大小
http://netfire.name/archives/20061031/260.html