查看数据库表空间使用情况:
select a.tablespace_name tnm,b.FILE_PATH,--b.autoextensible,
b.cnt,
trunc(a.bytes/1024/1024/1024) total_G,
trunc(a.bytes/1024/1024/1024/b.cnt) avg_G,
trunc(c.bytes/1024/1024/1024) free_G,
trunc((a.bytes-c.bytes)*100/a.bytes,2) used--,(c.bytes*100)/a.bytes "% FREE"
from SYS.SM$TS_AVAIL A,SYS.SM$TS_FREE C,
(select tablespace_name,substr(file_name,1,instr(file_name,'/',2)) FILE_PATH, --f.autoextensible,
count(*) cnt
from dba_data_files f group by
tablespace_name,substr(file_name,1,instr(file_name,'/',2))--,autoextensible
) b
WHERE A.TABLESPACE_NAME=C.TABLESPACE_NAME(+)
AND A.TABLESPACE_NAME=B.TABLESPACE_NAME
-- AND A.TABLESPACE_NAME IN (select distinct tablespace_name from dba_tablespaces)
order by avg_g desc;
结果如下:
可见,BLOBS表空间空存放了166G数据。
查看BLOBS表空间中存放的数据
先查看有哪些表:
select table_name from dba_tables where tablespace_name = 'BLOBS';
无输出结果,说明该表空间中并未存放表。
查看存放哪些段:
select SEGMENT_NAME from DBA_SEGMENTS where TABLESPACE_NAME='BLOBS'
输出338条记录,说明BLOB数据以段的形式存放在BLOBS表空间中。
查看这些段的大小:
select SUM(a.BYTES/1024/1024) "Size" from DBA_SEGMENTS a where TABLESPACE_NAME='BLOBS'
输出结果如下,共166G数据。
说明:
BLOB、CLOB、和 NCLOB:它们在数据库中要么存储在表中,要么存储在单独的段或表空间中。
BLOB 能够存储大容量的二进制数据,典型例子有图形图像和照片。
CLOB 能够存储大容量的字符数据,而且对于存储非结构化的 XML 文档很有用。
NCLOB:由对应于为 Oracle 数据库定义的本地字符集的字符数据组成。