oracle mysql 占用空间_Oracle中统计数据占用空间大小

本文详细介绍了在Oracle数据库中如何统计表的大小、LOB字段的长度以及使用DBMS_LOB包进行LOB字段的维护操作,包括APPEND、CLOSE、COPY等函数的使用。此外,还提供了一系列SQL查询示例,用于查询表空间、表数据大小以及按日期统计LOB字段占用磁盘空间。
摘要由CSDN通过智能技术生成

1. Oracle统计数据的大小

1,vsize()

统计每个字段的实际占用长度,统计的是单条记录的长度

2,DBMS_LOB.getlength()

统计BLOBs, CLOBs, and NCLOBs的字段实际占用长度,统计的是单条记录的长度

3,从聚合统计表里查

select AVG_ROW_LEN, T.* from DBA_TABLES T where table_name = 'WEB_ISC_DATA';

范例

---查看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

---查询指定表中clob字段对应的数据库段segment_name

SELECT * FROM DBA_LOBS WHERE OWNER ='ZSSYS' AND TABLE_NAME ='WEB_ISC_DATA'

---数据库段segment_name所对应的字段存库占用空间大小

SELECT ROUND(S.BYTES / 1024 / 1024 / 1024) size_gb, S.* FROM dba_segments S WHERE segment_name='SYS_LOB0000137536C00005$$';

---范例:按照单日统计数据条数,某个LOB字段占用磁盘的大小

SELECT C_INTERFACE_ID,

(SELECT C_BIZ_NAME

FROM ZSSYS.WEB_ISC_INTERFACE_REG

WHERE C_PK_ID = C_INTERFACE_ID) C_INTERFACE_ID,

DD,

COUNT(*),

SUM(DBMS_LOB.GETLENGTH(C_DATA)) / 1024 / 1024

FROM (SELECT C_INTERFACE_ID, TO_CHAR(T_CRT_TM, 'YYYY-MM-DD') AS DD, C_DATA

FROM ZSSYS.WEB_ISC_DATA D

WHERE T_CRT_TM > TRUNC(SYSDATE - 90))

GROUP BY C_INTERFACE_ID, DD ;

扩展:Oracle - DBMS_LOB函数和用法

DBMS_LOB包中主要提供了以下几个过程供用户对内部LOB字段进行维护:

APPEND: 将源LOB中的内容加到目的LOB中。

CLOSE: 关闭已经打开的LOB。

CREATETEMPORARY: 在用户的临时表空间中,建立临时LOB。

FILECLOSE: 关闭打开的BFILE定位符所指向的OS文件。

FILECLOSEALL: 关闭当前会话已经打开的所有BFILE文件。

FILEEXISTS: 确定file_loc对应的OS文件是否存在,1:存在。0:不存在。

FILEGETNAME: 获取BFILE定位符所对应的目录别名和文件名。

FILEISOPEN: 确定BFILE对应的OS文件是否打开。

FREETEMPORA 释放在默认临时表空间中的临时LOB。

FILEOPEN: 打开文件。

GETCHUNKSIZE: 当建立包含CLOB/BLOB列的表时,通过指定CHUNK参数可以指定操纵LOB需要分配的字节数(数据库尺寸的整数倍)默认为数据块的尺寸。

COPY: 从源LOB中复制数据到目的LOB。

ERASE: 删除LOB中全部或部分内容。

TRIM: 将LOB值减少到指定的长度。

WRITE: 向LOB中写入数据。

INSTR: 返回特定样式数据从LOB某偏移位置开始出现N次的具体位置。

IDOPEN: 确定LOB是否打开,打开:1,未打开:0。

ISTEMPORARY: 确定定位符是否为临时LOB。

LOADFROMFILE: 将BFILE的部分或全部内容复制到目标LOB变量。

LOADBLOBFROMFILE: 将BFILE数据装载到BLOB中,并且在装载后取得最新的偏移位置。

OPEN: 打开LOB,open_mode(只读:dbms_lob.lob_readonly,写:dbms_lob.lob_readwrite)。

COMPARE: 比较两个同种数据类型的LOB的部分或全部值是否相同。

GETLENGTH: 获取LOB的长度。

READ: 从LOB中读出数据。

SUBSTR: 与字符处理函数SUBSTR使用方法一样。

WRITEAPPEND: 将缓冲区数据写到LOB尾部。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值