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