Có lệnh nào để tìm tất cả kích thước cơ sở dữ liệu trong Postgres không?
Tôi có thể tìm kích thước của một cơ sở dữ liệu cụ thể bằng cách sử dụng lệnh sau:
select pg_database_size('databaseName');
Có lệnh nào để tìm tất cả kích thước cơ sở dữ liệu trong Postgres không?
Tôi có thể tìm kích thước của một cơ sở dữ liệu cụ thể bằng cách sử dụng lệnh sau:
select pg_database_size('databaseName');
Câu trả lời:
Và ... Nếu trong trường hợp bạn có thể không muốn nhập toàn bộ truy vấn ... bạn cũng có thể nhập ...
\l+ <database_name>
và bạn sẽ nhận được một số chi tiết về cơ sở dữ liệu, bao gồm kích thước của cơ sở dữ liệu.
Và ... Để có được kích thước của tất cả các cơ sở dữ liệu.
bạn chỉ có thể gõ ...
\l+
Bạn có thể cần phải đi vào dấu nhắc lệnh postgresql để truy vấn với các lệnh trợ giúp postgresql này.
Kiểm tra các lệnh trợ giúp postgresql khác bằng cách gõ
\?
tại dấu nhắc lệnh postgresql.
Bạn có thể lấy tên của tất cả các cơ sở dữ liệu mà bạn có thể kết nối từ bảng hệ thống "pg_datbase". Chỉ cần áp dụng chức năng cho các tên, như dưới đây.
select t1.datname AS db_name,
pg_size_pretty(pg_database_size(t1.datname)) as db_size
from pg_database t1
order by pg_database_size(t1.datname) desc;
Nếu bạn dự định đầu ra sẽ được tiêu thụ bởi một máy thay vì con người, bạn có thể cắt hàm pg_size_pretty ().
pg_database_size()
bao gồm các kích thước cho các chỉ mục
\l+
. Định dạng đầu ra dễ đọc hơn, mặc dù (ít cột hơn). Trao đổi giữa khả năng ghi và khả năng đọc
-- Database Size
SELECT pg_size_pretty(pg_database_size('Database Name'));
-- Table Size
SELECT pg_size_pretty(pg_relation_size('table_name'));
Dựa trên câu trả lời ở đây của @Hendy IINA
Hiển thị kích thước cơ sở dữ liệu:
\l+
ví dụ
=> \l+
berbatik_prd_commerce | berbatik_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 19 MB | pg_default |
berbatik_stg_commerce | berbatik_stg | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 8633 kB | pg_default |
bursasajadah_prd | bursasajadah_prd | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | 1122 MB | pg_default |
Hiển thị kích thước bảng:
\d+
ví dụ
=> \d+
public | tuneeca_prd | table | tomcat | 8192 bytes |
public | tuneeca_stg | table | tomcat | 1464 kB |
Chỉ hoạt động trong psql
.
\d+ *
làm việc, \d+
trở lại đơn giảnDid not find any relations.
\c dbname
), sau đó làm \d+
.
Có, có một lệnh để tìm kích thước của cơ sở dữ liệu trong Postgres. Đó là như sau:
SELECT pg_database.datname as "database_name", pg_size_pretty(pg_database_size(pg_database.datname)) AS size_in_mb FROM pg_database ORDER by size_in_mb DESC;
SELECT database_name, pg_size_pretty(size) from (SELECT pg_database.datname as "database_name", pg_database_size(pg_database.datname) AS size FROM pg_database ORDER by size DESC) as ordered;
SELECT pg_database.datname AS "DB Name", pg_size_pretty(pg_database_size(pg_database.datname)) AS "Size" FROM pg_database ORDER BY (pg_database_size(pg_database.datname)) DESC;
.
SELECT pg_size_pretty(pg_database_size('name of database'));
Sẽ cung cấp cho bạn tổng kích thước của một cơ sở dữ liệu cụ thể tuy nhiên tôi không nghĩ bạn có thể thực hiện tất cả các cơ sở dữ liệu trong một máy chủ.
Tuy nhiên, bạn có thể làm điều này ...
DO
$$
DECLARE
r RECORD;
db_size TEXT;
BEGIN
FOR r in
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
db_size:= (SELECT pg_size_pretty(pg_database_size(r.datname)));
RAISE NOTICE 'Database:% , Size:%', r.datname , db_size;
END LOOP;
END;
$$
pg_database
chứ không phải là pl / pssql đáng ghét này?
Từ wiki PostgreSQL .
LƯU Ý: Cơ sở dữ liệu mà người dùng không thể kết nối được sắp xếp như thể chúng có kích thước vô hạn.
SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
ELSE 'No Access'
END AS Size
FROM pg_catalog.pg_database d
ORDER BY
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_database_size(d.datname)
ELSE NULL
END DESC -- nulls first
LIMIT 20
Trang này cũng có các đoạn để tìm kích thước của các mối quan hệ lớn nhất và các bảng lớn nhất của bạn.
Bạn có thể sử dụng truy vấn bên dưới để tìm kích thước của tất cả các cơ sở dữ liệu của PostgreSQL.
Tài liệu tham khảo được lấy từ blog này.
SELECT
datname AS DatabaseName
,pg_catalog.pg_get_userbyid(datdba) AS OwnerName
,CASE
WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(datname))
ELSE 'No Access For You'
END AS DatabaseSize
FROM pg_catalog.pg_database
ORDER BY
CASE
WHEN pg_catalog.has_database_privilege(datname, 'CONNECT')
THEN pg_catalog.pg_database_size(datname)
ELSE NULL
END DESC;
Bắt đầu pgAdmin, kết nối với máy chủ, nhấp vào tên cơ sở dữ liệu và chọn tab thống kê. Bạn sẽ thấy kích thước của cơ sở dữ liệu ở cuối danh sách.
Sau đó, nếu bạn nhấp vào cơ sở dữ liệu khác, nó sẽ nằm trên tab thống kê để bạn có thể dễ dàng xem nhiều kích thước cơ sở dữ liệu mà không cần nỗ lực nhiều. Nếu bạn mở danh sách bảng, nó sẽ hiển thị tất cả các bảng và kích thước của chúng.
Databases
nút cây (được gắn với kết nối DB) và chọn Statistics
tab, bạn sẽ được trình bày một bản tóm tắt hay về tất cả các Cơ sở dữ liệu và kích thước của chúng (cột thứ ba).
du -k /var/lib/postgresql/ |sort -n |tail
du -k /var/lib/pgsql/ | sort -n | tail