表空间使用率迅速增长排查

来源:这里教程网 时间:2026-03-03 21:34:27 作者:

最大表空间 TBS_WINEXDATA 每日增长情况 select rtime,name,total_GB,total_GB-lag(total_GB,1,total_GB) over(partition by name order by rtime) total_diff, total_used_GB,total_used_GB-lag(total_used_GB,1,total_used_GB) over(partition by name order by rtime) totaluse_diff from ( select rtime,c.name,round(tablespace_size*8192/1024/1024/1024,2) total_GB,round(tablespace_usedsize*8192/1024/1024/1024,2) total_used_GB from dba_hist_tbspc_space_usage a,v$tablespace c where a.tablespace_id=c.ts# and substr(rtime,12,5)='00:00' and c.name  ='TBS_WINEXDATA' order by 2,1) ; 该表空间每天增长 30G 左右( TOTALUSE_DIFF 列)。一个月就是 900G 左右 select * from dba_segments where tablespace_NAME='TBS_WINEXDATA' AND BYTES>1024*1024 *1024  ORDER BY BYTES DESC; 该表空间的 TOP 5 大对象都是主要是 LOB 字段。如第一个 LOB 字段达 732G 查看 LOB 列的压缩属性( COMPRESSION 列),基本上都是没有打开压缩( NO 即未开启压缩属性),会造成较多空间使用。 TOP 1 LOB 列达 739T 排查了下目前数据库内的全部 LOB 列的压缩情况,如下。 2726 个未开启压缩。 select COMPRESSION,count(*) from dba_lobs where owner not in('SYS','SYSTEM') group by COMPRESSION 结论: 1、表空间增长过快,每日约增长 30G左右。 2、存在较多 LOB列大对象,占用较大空间。控制住这些 TOP LOB对象的增长,数据库空间增长会慢下来。 建议:

打开 LOB 列的压缩属性,压缩效果比较明显(插入相同数据,未开启 LOB 列压缩情况下大小为 277M ,开启压缩后仅为 131K )。压缩方式有 2 种,一种是 medium ,另外一种 high( 压缩比会更高,但是对性能有影响 ) 。建议使用 medium 压缩。 处理方式: 1 :创建表的时候,打开对 LOB 列的压缩属性 如:  CREATE TABLE compress_medium_tab (   id         NUMBER,   clob_data  CLOB ) LOB(clob_data) STORE AS SECUREFILE compress_medium_lob (   COMPRESS medium );   2 :对于已经创建的表,将现有的表打开 LOB 列的压缩属性,注意该调整不会压缩当前表,会对后续新插入的记录进行压缩。 ALTER TABLE nocompress_tab  MODIFY LOB( clob_data )(COMPRESS); 说明: nocompress_tab 为表名。 clob_data LOB 列名。

相关推荐