Oracle含LOB大字段表的存储占用统计

Oracle含LOB大字段表的存储占用统计

  • [1 环境说明](#1 环境说明)

1 环境说明

CPU X86

Os CentOS 7

ORACLE 11.2.0.4.0

  • 本脚本用于统计 Oracle 数据库中所有包含大字段(LOB)的表空间占用情况 。它通过关联 dba_tables、dba_segments 与 dba_lobs 数据字典视图,一次性汇总出每张含 LOB 字段的表的真实存储占用,帮助 DBA 快速定位"占用空间大表"。

脚本输出三个核心指标:

  • 表数据大小(GB) :表数据段(TABLE 段)本身占用的空间。
  • LOB总大小(GB) :该表下所有 LOB 段(LOBSEGMENT)与 LOB 索引段(LOBINDEX)的合计占用。
  • 真实总大小(GB):表数据与 LOB 占用之和,反映该表的真实存储成本。
  • 说明:仅统计包含 LOB 字段的表(lob_seg.table_name IS NOT NULL),并按真实总大小降序排列,便于一眼锁定存储占用最高的表。
sql 复制代码
SELECT
    t.owner AS "表所有者",
    t.table_name AS "表名",
    -- 1. 表数据段本身的大小 (GB)
    ROUND(NVL(tab_seg.bytes, 0) / 1024 / 1024 / 1024, 2) AS "表数据大小(GB)",
    -- 2. 关联的LOB段和LOB索引段的总大小 (GB)
    ROUND(NVL(lob_seg.total_lob_bytes, 0) / 1024 / 1024 / 1024, 2) AS "LOB总大小(GB)",
    -- 3. 表的真实总占用空间 (表数据 + LOB)
    ROUND((NVL(tab_seg.bytes, 0) + NVL(lob_seg.total_lob_bytes, 0)) / 1024 / 1024 / 1024, 2) AS "真实总大小(GB)"
FROM
    dba_tables t
-- 关联查询表数据段的大小
LEFT JOIN dba_segments tab_seg
    ON t.owner = tab_seg.owner 
    AND t.table_name = tab_seg.segment_name 
    AND tab_seg.segment_type = 'TABLE'
-- 关联查询该表下所有LOB段和LOB索引段的大小总和
LEFT JOIN (
    SELECT 
        l.owner, 
        l.table_name, 
        SUM(s.bytes) AS total_lob_bytes
    FROM dba_lobs l
    JOIN dba_segments s 
        ON l.owner = s.owner 
        AND (l.segment_name = s.segment_name OR l.index_name = s.segment_name)
    WHERE s.segment_type IN ('LOBSEGMENT', 'LOBINDEX')
    GROUP BY l.owner, l.table_name
) lob_seg
    ON t.owner = lob_seg.owner 
    AND t.table_name = lob_seg.table_name
WHERE
    lob_seg.table_name IS NOT NULL -- 仅筛选包含LOB字段的表
ORDER BY 
    "真实总大小(GB)" DESC; -- 按真实总大小降序排列,快速定位"占用空间大表"
相关推荐
执笔为剑10 分钟前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
江湖有缘15 分钟前
Docker实战 | 使用Docker部署rmoments社交平台
jvm·docker·oracle
geovindu34 分钟前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__41 分钟前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧
2501_931803751 小时前
MySQL 锁机制详解
数据库·mysql
Nturmoils1 小时前
SQL 编辑器不只是写查询:我用 KStudio 排查一次订单异常
数据库
IvorySQL2 小时前
PostgreSQL 日报|逻辑解码 DDL 子事务缺陷修复(10 月 12 日)
数据库·postgresql
这个DBA有点耶2 小时前
研发规模/投入最大的国产数据库厂商是谁?拆解五个衡量维度
数据库·程序员·产品
葡萄城技术团队2 小时前
数据库里的数据明明是对的,为什么 BI 报表还是错?
数据库
野生数据人2 小时前
日志平台每日巡检我压成了一条命令链:从 SHOW BACKENDS 到扩缩容的完整步骤
大数据·数据库