实用存储过程--获取oracle用户下所有表的表名与其数据量
概述
作为DBA,对数据库中表段、索引段之类的数量,大概的级别是需要有个大致了解的,今天主要分享一个存储过程,可以很实用的获取到oracle用户下所有表的表名与其数据量。
查询当前用户名下所有表
select * from all_tables where owner='GZCSS_GZBH';
存储过程
CREATE TABLE TMP_TAB_CNT(TABLE_NAME VARCHAR2(50),TABLE_CNT_O INT); begin for tb in (select table_name from dba_tables where owner = 'GZCSS_GZBH' and TEMPORARY='N' AND TABLE_NAME NOT LIKE '%?%') LOOP execute immediate 'insert into TMP_TAB_CNT(table_name,table_cnt_o) select ''' ||tb.table_name ||''',(select count(*) from ' ||'"' ||tb.table_name ||'"' ||') from dual'; END LOOP; COMMIT; END;
查询所有表的表名与其数据量
select * from TMP_TAB_CNT;
关于oracle方面怎么去查所有表的表名与其数据量就介绍到这了,存储过程中的owner大家根据需要做对应调整就行,如果数据库数据量上T的话可能要收集半个小时,大家可以自己测试下。
后面会分享更多工作中常用的一些技巧和命令,感兴趣的朋友可以关注下!
相关推荐
Omega 2020-08-16
zjyzz 2020-08-16
zhaojp0 2020-06-27
hungzz 2020-06-16
minggehenhao 2020-07-28
zjuwangleicn 2020-06-25
wenjieyatou 2020-06-17
liaomingwu 2020-06-16
muzirigel 2020-06-14
gsmfan 2020-06-14
ncomoon 2020-06-14
xiaobaif 2020-06-13
Rain 2020-06-12
hanshangzhi 2020-06-12
talkingDB 2020-06-12
IBMRational 2020-06-09
snowguy 2020-06-01