概述
作為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的話可能要收集半個小時,大家可以自己測試下。
後面會分享更多工作中常用的一些技巧和指令,感興趣的朋友可以關注下!