如何查看ORACLE的LOB(BLOB和CLOB)对象占用的大小

最近,某个数据接口项目上ORACLE数据库的使用空间越来越大,我们要查看一下数据库中哪个数据表的数据量的大小,以便进行有针对性的处理.

1.查看Oracle中表空间及表数据大小

SELECT SEGMENT_NAME,
       (SUM(BYTES) / 1024 / 1024 / 1024) || 'GB' AS TABLE_SIZE
  FROM USER_EXTENTS
 GROUP BY SEGMENT_NAME
 ORDER BY TABLE_SIZE DESC;

2、从返回的结果看,有一个segment名为"SYS_LOB0000090035C00005$$"的对象占用了大量的空间,这种带有SYS_LOB***即LOB(BLOB和CLOB)对象占用数据库的空间名称。

如何查看ORACLE的LOB(BLOB和CLOB)对象占用的大小_第1张图片

 3、根据segment_name,就可以从 dba_lobs 表里查到是哪个表,哪个字段,具体的SQL如下:

SELECT * FROM DBA_LOBS WHERE SEGMENT_NAME LIKE 'SYS_LOB0000090035C00005$$';

 如何查看ORACLE的LOB(BLOB和CLOB)对象占用的大小_第2张图片

 可以发现是bizdoccontent这个表里存在的Bolb类型CONTENT存有大数据,占用了7.3GB的空间。

 

你可能感兴趣的:(数据库知识)