728x90
반응형
create or replace function count_rows_of_table(table_schema text, table_name text)
returns numeric
language plpgsql
as
$$
declare
count numeric;
begin
execute format('select count(*) from %s.%s', table_schema, table_name)
into count;
return count;
end;
$$;
SELECT n.nspname as "Schema",
c.relname as "Name",
pg_catalog.pg_get_userbyid(c.relowner) as "Owner",
TO_CHAR( pg_catalog.pg_table_size(c.oid)/1024 , '999,999,999,999,999') as "Size_MB",
TRIM(TRIM(n.nspname)||'.'||TRIM(c.relname))AS TB_NAME,
count_rows_of_table(n.nspname, c.relname) as exact_row_count
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname <> 'sys'
AND n.nspname <> 'dbo'
AND n.nspname !~ '^pg_toast'
ORDER BY pg_catalog.pg_table_size(c.oid) desc
위의 쿼리문을 입력하면 간단히 [Schema, Name(테이블 명), Owner, Size_MB(MB기준의 사이즈), tb_name(데이블 이름), row_count(테이블의 데이터 수)]를 구할 수 있다.
반응형
'SQL' 카테고리의 다른 글
[MySql / Postgresql] sequence 추가 쿼리문 / 자동증가하게 만드는 쿼리문 /Sequence 중간에 추가하기 (0) | 2023.04.21 |
---|---|
[MyBatis/SQL]MyBatis 동적쿼리 if문 | MyBatis 동적쿼리 이용하기 | MyBatis SQL (0) | 2023.01.26 |
[MySQL] CASE 구문 익히기 | CASE WHEN ~ 예제 (1) | 2022.12.24 |
[MySQL] SELECT에 대한 모든것! 원하는 정보 가져오기 (0) | 2022.12.22 |
[MySQL] 컬럼의 이름과 데이터타입 및 속성 동시에 수정하기 (0) | 2022.11.15 |