PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Kích thước của bảng phân vùng trong PostgreSQL 9.0

Trong PostgreSQL, mọi bảng là một đối tượng, sử dụng pg_relation_size (‘object_name’) sẽ cung cấp kích thước của đối tượng. Nếu bạn gửi bảng phân vùng ở vị trí của ‘object_name’, nó chỉ cung cấp kích thước đối tượng đó chứ không cung cấp kích thước của các bảng con.

Hãy xem ví dụ dưới đây.

postgres=# dt+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+---------------+-------+----------+------------+-------------
public | child1 | table | postgres | 8192 bytes |
public | child2 | table | postgres | 8192 bytes |
public | parent | table | postgres | 0 bytes |
(3 rows)

pg_relation_size () trên bảng mẹ sẽ không cung cấp kích thước chính xác.

postgres=# select pg_size_pretty(pg_relation_size('parent'));
pg_size_pretty
----------------
0 bytes
(1 row)

Để đạt được kích thước bảng phân vùng, trước hết phải biết các bảng con liên quan và kích thước của nó. Sử dụng bảng danh mục pg_inherits sẽ giúp lấy thông tin của các bảng con có kích thước và sau đó tổng hợp chúng lại để có kích thước chính xác. Tôi đã thử viết một hàm nhỏ bằng pg_inherits để hoàn thành nó.

CREATE OR REPLACE FUNCTION pg_partition_table_size(text) returns numeric as
$$
select sum(to_number(pg_size_pretty(pg_relation_size(inhrelid::regclass)),'999999999')) from pg_inherits where inhparent=$1::regclass;
$$ language sql;

Bây giờ, hãy gửi bảng phân vùng tới hàm.

postgres=# select pg_partition_table_size('parent');
pg_partition_table_size
-------------------------
16384
(1 row)

Nó không hữu ích. Hãy đăng bình luận của bạn, chúng sẽ được đánh giá rất cao.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng cấu trúc dữ liệu vòng trong các hàm cửa sổ

  2. Hàm PostgreSQL / Thủ tục được lưu trữ CURRENT_TIMESTAMP không thay đổi

  3. 3 cách để định dạng một số dưới dạng phần trăm trong PostgreSQL

  4. psql:FATAL:Xác thực ngang hàng không thành công cho nhà phát triển người dùng

  5. Cặp giá trị khóa trong PostgreSQL