PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL 9.0 . में विभाजन तालिका का आकार

PostgreSQL में, प्रत्येक तालिका एक वस्तु है, pg_relation_size('object_name') का उपयोग करके वस्तु का आकार देगा। यदि आप 'ऑब्जेक्ट_नाम' के स्थान पर विभाजन तालिका भेजते हैं, तो यह केवल उस ऑब्जेक्ट का आकार देता है, लेकिन चाइल्ड टेबल के आकार को नहीं।

नीचे दिया गया उदाहरण देखें।

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() पैरेंट टेबल पर सटीक आकार नहीं देगा।

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

विभाजन तालिका का आकार प्राप्त करने के लिए, सबसे पहले संबंधित चाइल्ड टेबल और उसके आकार को जानें। pg_inherits कैटलॉग तालिका का उपयोग करने से आकार के साथ चाइल्ड टेबल की जानकारी प्राप्त करने में मदद मिलेगी और बाद में उन्हें सटीक आकार के लिए जोड़ दिया जाएगा। मैंने इसे पूरा करने के लिए pg_inherits का उपयोग करके एक छोटा सा फ़ंक्शन लिखने का प्रयास किया है।

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;

अब, पार्टीशन टेबल को फंक्शन में भेजें।

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

क्या यह उपयोगी नहीं है। अपनी टिप्पणियाँ पोस्ट करें, उनकी बहुत सराहना की जाएगी।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस नाम निर्दिष्ट किए बिना मैं PostgreSQL से कैसे जुड़ूं?

  2. varchar के लिए array_agg () का उपयोग कैसे करें []

  3. पोस्टग्रेएसक्यूएल गलत टाइमस्टैम्प से टाइम ज़ोन के बिना टाइम ज़ोन के साथ टाइमस्टैम्प में परिवर्तित हो रहा है

  4. postgresql date_trunc मनमानी परिशुद्धता के लिए?

  5. Ubuntu 16.04 पर PostgreSQL 10 को स्थापित और कनेक्ट करें