Danh sách Tutorial

Hiển thị kích thước các bảng trên PostgreSQL Database


Hôm nay lại gặp vấn đề database của dự án sử dụng PostgreSQL phình to bất thường. Vì vậy dựa trên kinh nghiệm xử lý vấn đề này trên MySQL mình đã tìm kiếm câu lệnh để lấy kích thước, size của các bảng trong PostgreSQL Database để thu hẹp phạm vi điều tra vấn đề.

Lấy kích thước / size của Database trên PostgreSQL

Để lấy kích thước của 1 database chúng ta sử dụng câu lệnh sau:

SELECT pg_size_pretty( pg_database_size('<database_name>') );

Kết quả:

Để lấy toàn bộ kích thước của tất cả các database và sắp xếp chúng theo kích thước giảm dần:

SELECT
  pd.datname AS db_name,
  pg_size_pretty ( pg_database_size ( pd.datname ) ) AS db_size 
FROM
  pg_database pd 
ORDER BY
  pg_database_size ( pd.datname ) DESC;

Kết quả:

Chú ý là kích thước trả vể của PostgreSQL sẽ là đơn vị bytes. Vì vậy chúng ta sử dụng hàm pg_size_pretty để convert về kB, MB, GB tương ứng.

Ngoài ra chúng ta PostgreSQL còn có thể sử dụng command sau ở chế độ console.

\l+
Hoặc
\l+ <database_name>

Kết quả:

Lấy kích thước / size của các bảng trong 1  PostgreSQL Database

Để lấy kích thước của tất cả các bảng và sắp xếp chung theo thứ tự giảm dần, các bạn tham khảo câu SQL sau đây

Chỉ lấy ở schema public

SELECT 
  TABLE_NAME,
  pg_size_pretty ( pg_total_relation_size ( quote_ident( TABLE_NAME ) ) ),
  pg_total_relation_size ( quote_ident( TABLE_NAME ) ) 
FROM
  information_schema.tables 
WHERE
  table_schema = 'public' 
ORDER BY
  3 DESC;

Kết quả:

Lấy hết kích thước của các bảng ở tất cả các schema.

SELECT
  table_schema,
  TABLE_NAME,
  pg_size_pretty ( pg_relation_size ( '"' || table_schema || '"."' || TABLE_NAME || '"' ) ),
  pg_relation_size ( '"' || table_schema || '"."' || TABLE_NAME || '"' ) 
FROM
  information_schema.tables 
ORDER BY
  4 DESC;

Kết quả:

Nguồn: vinasupport.com

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web