原文地址:
原文作者:tim hall
本文介绍 oracle 数据库 21c 中的空间管理增强功能。
目录
在以前的版本中,我们只能通过移动 lob 来释放 lob 的空间,这对于大型 lob 段可能需要相当长的时间。
alter table tab1 move lob(lob_column_name) store as (tablespace new_ts);
在 oracle 21c 中,我们可以在不影响访问的情况下对日志段进行碎片整理。这会释放未使用的空间,而不会产生完全移动 lob 段的开销。
收缩可以针对特定列的 lob 段执行,也可以作为表级联操作的一部分执行:
alter table t1 modify lob (colb_column1) (shrink space);
alter table t1 shrink space cascade;
级联操作在以前的版本中有效,但 lob 段未包含在级联中。
v$securefile_shrink
视图包含用于段的收缩操作的行。它在操作期间被更新,如果对同一段请求另一个收缩操作,它会被覆盖。
顾名思义,automatic temporary tablespace shrink 特性将缩小临时表空间的大小以释放空间。如果需要更多,数据库可以先发制人地增加临时表空间。文档将此称为临时表空间大小自动调整。这允许我们让临时表空间根据需要扩展和收缩,而不会永久丢失磁盘空间。
在撰写本文时,文档仅限于新功能手册 ,不过只是说明了功能,并没有使用手册或日志记录的详细信息。
感谢 指出 v$sysstat
视图中的相关统计数据:
column name format a40
select con_id,
name,
value
from v$sysstat
where name like '%tbs%';
con_id name value
---------- ---------------------------------------- ----------
0 tbs extension: tasks created 0
0 tbs extension: tasks executed 0
0 tbs extension: files extended 0
0 tbs extension: bytes extended 0
0 tbs shrink: tasks created 0
0 tbs shrink: tasks executed 0
sql>
此功能首次在 oracle 19c 自治数据库中引入,但从 oracle 21c 开始,它可用于企业版安装。请参阅 的许可手册。
顾名思义,automatic undo tablespace shrink 功能将缩小 undo 表空间的大小以释放空间。过期的撤消段将被删除,如果可能,数据文件会被缩小。这允许我们让撤消表空间根据需要扩展和收缩,而不会永久丢失磁盘空间。
在撰写本文时,文档仅限于新功能手册 ,它只是说它存在,没有使用控制或日志记录的详细信息。
感谢 指出 v$sysstat
视图中的相关统计数据:
column name format a40
select con_id,
name,
value
from v$sysstat
where name like '%tbs%';
con_id name value
---------- ---------------------------------------- ----------
0 tbs extension: tasks created 0
0 tbs extension: tasks executed 0
0 tbs extension: files extended 0
0 tbs extension: bytes extended 0
0 tbs shrink: tasks created 0
0 tbs shrink: tasks executed 0
sql>
根据许可手册 ,此功能在企业版中可用。
此功能首次在 oracle 19c 自治数据库中引入,但从 oracle 21c 开始,它可用于企业版安装。请参阅 的许可手册。