達夢數據庫查詢表空間,及各表記錄數


1.執行

CREATE OR REPLACE FUNCTION count_rows (
table_name IN varchar2,
owner IN varchar2 := NULL
)
RETURN number AUTHID current_user
AS
num_rows number;
stmt varchar2(2000);
BEGIN
IF owner IS NULL THEN
stmt := 'select count(*) from "' || table_name || '"';
ELSE
stmt := 'select count(*) from "' || owner || '"."' || table_name || '"';
END IF;
EXECUTE IMMEDIATE stmt INTO num_rows;
RETURN num_rows;
END;

2.查詢記錄數

select table_name, count_rows(table_name) nrows from user_tables

3.查詢記錄數以及各表占存儲
select A.TABLE_NAME,A.nrows,B.OWNER ,B.KB
from (select table_name, count_rows(table_name) nrows from user_tables group by TABLE_NAME) as A
left join (select owner,segment_name,sum(bytes)/1024 as KB from dba_segments where segment_type='TABLE'group by owner,segment_name) as B
on A.TABLE_NAME=B.SEGMENT_NAME
where B.OWNER='CECPORTAL' order by nrows desc;
————————————————
版權聲明:本文為CSDN博主「navy_1024」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_41223299/article/details/105136026


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM