我有一张大数据量的表,如果我用delete删除所有数据,表空间没有释放标记为unused,但是我再insert的时候,新插入的数据会照样使用unused的空间,理论上这没什么问题,为什么要用truncate来释放表空间,有什么特别的深意吗,另外如果我这个表空间是自动扩展的,我的数据量超出了初始的表空间大小后自动扩展了300m那么我有trancate表后扩展的表空间时候也自动释放掉了,烦劳高手给指点一下,谢谢!!!
调试欢乐多
跟你问的问题一样
你能够使用delete还不错啦,我遇到的问题,似乎是高水标记在涨,但是我又必须保留记录,而且明显占用空间多一倍多,所以只能1、2个月就备份数据到别处,drop本地表,再还原备份...
因为那块的数据,每晚要执行160万次以上的update,执行效率是通过绑定变量来优化的,但是无法解决高水标记的问题。
幸运的是,我那部分数据,目前客户很少使用,所以我隔1个多月折腾一次的时间还有,要是实时应用,确实会很麻烦。
你可以去查查high water 高水标记 相关的一些东西,看看有没有帮助,或者去itpub cnoug 等Oracle论坛请教一下高人们。