注册
达梦数据库统计所有表数据条数及占用空间大小
技术分享/ 文章详情 /

达梦数据库统计所有表数据条数及占用空间大小

### 2026/02/06 898 3 0

1、创建一个table_count表用于记录统计结果

create table table_count (owner varchar(128),object_name varchar(128),cnt bigint,size_mb int,T TIMESTAMP);

2、执行以下脚本统计每张表的数据量及大小插入table_count表中

declare
v_owner VARCHAR2(128);
v_tabname VARCHAR2(128);
stmt  VARCHAR2(500);
num_rows bigint;
begin
    for rec in (
    select owner,object_name from ALL_OBJECTS where object_type='TABLE' and OWNER NOT IN ('SYS', 'SYSAUDITOR','SYSSSO','SYSJOB','CTISYS')    
    )
    loop
        select rec.owner,rec.object_name into v_owner,v_tabname from dual;
        stmt := 'select count(*) from "' || v_owner || '"."' || v_tabname || '"';
        EXECUTE IMMEDIATE stmt INTO num_rows; 
        EXECUTE IMMEDIATE 'insert into table_count values('''||v_owner||''','''||v_tabname||
        ''','''||to_number(num_rows)||''','''||table_used_space(v_owner,v_tabname)*32/1024||''',SYSDATE())';        
    end loop;
    commit;
end;

3、查询table_count表查看统计结果

select * from table_count order by cnt desc;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服