获取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'
    );
相关推荐
Elastic 中国社区官方博客4 小时前
使用 Elasticsearch 和 Jina 进行 AI 视频搜索:精准找到你需要的视频片段秒数
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
Omics Pro5 小时前
新型条件传输模型!虚拟细胞扰动预测
数据库·人工智能·算法·机器学习·自然语言处理
实验室管理云平台5 小时前
环境检测实验室管理系统:提升效率与数据准确性的关键工具
大数据·数据库·科技
SelectDB技术团队5 小时前
快手基于 Apache Doris 千亿多模态检索的实践
数据库·数据分析·全文检索·快手·apache doris·向量索引·多模态检索
政企项目老覃5 小时前
金融转账“幽灵失败“排查实录:从本地消息表到 Seata TCC 的选型与权衡
数据库·程序人生·性能优化·数据分析·系统架构
TLA技术5 小时前
LogMiner vs 裸日志解析(三):Oracle日志解析中的“前镜像”和“后镜像”,到底怎么用?
数据库·oracle·flink·dba·迁移学习
IT邦德5 小时前
BIC-QA如何重新定义数据库知识服务
运维·数据库
逐米时代6 小时前
BOM智能构建:全链路一致性自动校验
大数据·数据库·人工智能
SelectDB技术团队6 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
数据库·人工智能·sql·clickhouse·apache doris·selectdb·湖仓架构升级
Gauss松鼠会6 小时前
GaussDB 系统表与系统视图详解(内网运维版)
运维·服务器·网络·数据库·gaussdb·经验总结