数据库上如果进行了大的数据排序操作,那么在排序结束后,使用的空间不会被回收,只是标记是空闲的可重用的。这样会导致占用大量的磁盘空间。11g中可以shrink本地管理的临时表空间,释放未使用的空间。
shrink是在线的操作,对于正在运行的查询不会有任何影响,用户的会话也可以继续的分配排序段。
下面是回收的时候保持20m的空间
ALTER TABLESPACE lmtemp1 SHRINK SPACE KEEP 20M;
下面的语句是自动的尽可能的回收至最小大小
ALTER TABLESPACE lmtemp2 SHRINK TEMPFILE ‘/u02/oracle/data/lmtemp02.dbf’;