缩小本地管理的临时表空间

您可以收缩本地管理的临时表空间并释放未使用的空间。

数据库执行的大型排序操作可能会导致临时表空间增长并占用大量磁盘空间。排序操作完成后,多余的空间不会被释放;它只是被标记为免费并可重复使用。因此,单个大型排序操作可能会导致大量分配的临时空间在排序操作完成后仍未使用。出于这个原因,数据库使您能够收缩本地管理的临时表空间并释放未使用的空间。

收缩临时表空间:

  • 使用语句的SHRINK SPACE子句ALTER TABLESPACE

收缩临时表空间的特定临时文件:

  • 使用语句的SHRINK TEMPFILE子句ALTER TABLESPACE

收缩可以释放尽可能多的空间,同时保持表空间或临时文件的其他属性。可选KEEP子句定义表空间或临时文件的最小大小。

Shrinking 是一种在线操作,这意味着如果需要,用户会话可以继续分配排序范围,并且已经运行的查询不受影响。

以下示例缩小本地管理的临时表空间lmtmp1,同时确保最小大小为 20M。

ALTER TABLESPACE lmtemp1 SHRINK SPACE KEEP 20M;

以下示例缩小了本地托管临时表空间lmtmp2的临时文件lmtemp02.dbf。由于省略了KEEP子句,数据库尝试将临时文件缩小到尽可能小的大小。

ALTER TABLESPACE lmtemp2 SHRINK TEMPFILE '/u02/oracle/data/lmtemp02.dbf';

 

posted @ 2022-10-03 16:39  wongchaofan  阅读(73)  评论(0编辑  收藏  举报