获取oracle表大小

在 Oracle 数据库中,获取表的大小可以通过查询数据字典视图 DBA_SEGMENTSUSER_SEGMENTSALL_SEGMENTS,具体取决于你的权限范围和需求

直接查询段大小

表的存储空间信息存储在段(Segment)中,通过以下 SQL 可以获取表的大小(包含数据、索引、LOB 等占用的空间)

复制代码
SELECT
    segment_name AS table_name,
    bytes,
    ROUND(bytes / 1024 / 1024, 2) AS size_mb
FROM
    user_segments  -- 根据权限替换为 dba_segments 或 all_segments
WHERE
    segment_type = 'TABLE'
  AND segment_name = 'AI_TOOLS';
  • 确保表名使用大写,因为 Oracle 数据字典默认存储大写对象名。

  • bytes 字段表示分配的存储空间,可能包含未使用的块。

  • 若表有分区,需查询 DBA_TAB_PARTITIONS 视图获取各分区大小。

计算表数据估算大小(基于统计信息)

结合 DBA_TABLES 中的行数和平均行长估算数据量(需更新统计信息):

sql 复制代码
BEGIN
    DBMS_STATS.GATHER_TABLE_STATS(
            ownname    => 'NEW_USER',
            tabname    => 'AI_TOOLS'
    );
END;
/

SELECT
    table_name,
    num_rows,
    avg_row_len,
    ROUND((num_rows * avg_row_len) / 1024 / 1024, 2) AS estimated_size_mb
FROM
    user_tables
WHERE
    table_name = 'AI_TOOLS';

汇总表及索引的总大小

sql 复制代码
SELECT 
    'TABLE' AS segment_type,
    segment_name,
    bytes AS table_size_bytes,
    ROUND(bytes / 1024 / 1024, 2) AS table_size_mb
FROM 
    user_segments
WHERE 
    segment_type = 'TABLE'
    AND segment_name = 'YOUR_TABLE_NAME'

UNION ALL

SELECT 
    'INDEX' AS segment_type,
    segment_name,
    bytes AS index_size_bytes,
    ROUND(bytes / 1024 / 1024, 2) AS index_size_mb
FROM 
    user_segments
WHERE 
    segment_type = 'INDEX'
    AND segment_name IN (
        SELECT index_name 
        FROM user_indexes 
        WHERE table_name = 'YOUR_TABLE_NAME'
    );
相关推荐
APIshop2 分钟前
实战代码解析:item_get——获取某鱼商品详情接口
java·linux·数据库
洛_尘4 分钟前
MySQL 5:增删改查操作
数据库·mysql
老邓计算机毕设14 分钟前
SSM养老院老人健康信息管理系统t4p4x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·计算机毕业设计·ssm 框架·养老院老人健康管理系统
AC赳赳老秦16 分钟前
跨境科技服务的基石:DeepSeek赋能多语言技术文档与合规性说明的深度实践
android·大数据·数据库·人工智能·科技·deepseek·跨境
理智的煎蛋24 分钟前
达梦数据库全流程操作指南
数据库·oracle
FreeBuf_33 分钟前
欧盟漏洞数据库正式上线,采用去中心化模式运营
数据库·去中心化·区块链
东方轧线36 分钟前
给 AI 安装高速缓存:实战 MCP 对接 Redis,实现热点数据的毫秒级读取与状态共享
数据库·人工智能·redis
2401_832298101 小时前
腾讯云TSearch存算分离,破解日志分析算力瓶颈
大数据·运维·数据库
Leo July1 小时前
【MySQL】MySQL数据库调优实战指南:从基础优化到架构升级
数据库·mysql·架构
l1t1 小时前
DeepSeek总结的在单节点上处理 1TB Parquet 数据方法
数据库·人工智能·duckdb