日期:2014-05-17  浏览次数:21064 次

关于delete后的表空间释放的问题,谢谢!!!
我有一张大数据量的表,如果我用delete删除所有数据,表空间没有释放标记为unused,但是我再insert的时候,新插入的数据会照样使用unused的空间,理论上这没什么问题,为什么要用truncate来释放表空间,有什么特别的深意吗,另外如果我这个表空间是自动扩展的,我的数据量超出了初始的表空间大小后自动扩展了300m那么我有trancate表后扩展的表空间时候也自动释放掉了,烦劳高手给指点一下,谢谢!!!

------解决方案--------------------
参见http://community.csdn.net/Expert/topic/5324/5324261.xml?temp=.9401667
跟你问的问题一样
------解决方案--------------------
truncate主要用于清空表,降低表存储高水位标记,释放存储空间,当下次存储数据时,将重新分配存储扩展段。
------解决方案--------------------
delete再怎么处理,也达不到truncate释放空间的功能吧...
你能够使用delete还不错啦,我遇到的问题,似乎是高水标记在涨,但是我又必须保留记录,而且明显占用空间多一倍多,所以只能1、2个月就备份数据到别处,drop本地表,再还原备份...
------解决方案--------------------
不行,除非使用导出导入重组表