ITPub博客

首页 > 数据库 > Oracle > 表空间使用率迅速增长排查

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

原创 Oracle 作者:jason_yehua 时间:2025-02-26 17:16:21 0 删除 编辑

最大表空间 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 列名。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31547506/viewspace-3073853/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-05-22

  • 博文量
    122
  • 访问量
    99612