问题如下:
在oracle 9i数据库中有一photo表,该表占用了很大的硬盘物理空间假设为100GB,假设对应的这张表的表空间就占用了100GB,现在把photo表中的50%的记录删除采用delete where的方式,按理来说现在腾出了近50GB的表空间出来。delete 删除后的空间 在oracle中这些空间被标记为unused block的块,也就是说photo这张表对对应的表空间还是占用了100GB,
在再次插入数据到photo中这张表的时候,表空间自动增加,并没有去利用unused block的这些数据块,那么请问一下应该如何回收这些unused block块,我希望该表占用的表空间减少下来的同时,占用硬盘物理空间的大小也减少下来,用df查看... ...注意:
IBM Unix ,oracle 9i,
表记录比较大,用imp/exp的方式去减少表空间是不合实际的。在表中有用到自增的(表空间->表空间名称->存储,选中了数据文件已满后自动扩展,增量5GB。)
在oracle 9i数据库中有一photo表,该表占用了很大的硬盘物理空间假设为100GB,假设对应的这张表的表空间就占用了100GB,现在把photo表中的50%的记录删除采用delete where的方式,按理来说现在腾出了近50GB的表空间出来。delete 删除后的空间 在oracle中这些空间被标记为unused block的块,也就是说photo这张表对对应的表空间还是占用了100GB,
在再次插入数据到photo中这张表的时候,表空间自动增加,并没有去利用unused block的这些数据块,那么请问一下应该如何回收这些unused block块,我希望该表占用的表空间减少下来的同时,占用硬盘物理空间的大小也减少下来,用df查看... ...注意:
IBM Unix ,oracle 9i,
表记录比较大,用imp/exp的方式去减少表空间是不合实际的。在表中有用到自增的(表空间->表空间名称->存储,选中了数据文件已满后自动扩展,增量5GB。)
先把想留下的记录存到别的表中去,或者导出到别的地方。
然后truncate这个表。也可以dorp以后在生成。
这样才会回缩表空间!
删除access数据库的记录,选中“关闭时自动压缩“, 可以释放空间。
... ...
扯远了。
1. 升级到10g下,10g提供了段管理功能,可以通过shrink 命令来收回未被使用的extents,并修改 HWM ;
2. 9i下使用 ALTER TABLE MOVE 命令把表移动到一个不同的表空间中来回收空间;
其他的想不出来了,-_-
空间不够,你挂一个吧!