Postgresql統計所有表的基本信息(如行數、大小等)


目錄 pg_class 記錄表和幾乎所有具有列或者像表的東西。這包括索引(但還要參見 pg_index )、序列、視圖、物化視圖、組合類型和TOAST表,參見 relkind 。下面,當我們提及所有這些類型的對象時我們使用“關系”。並非所有列對於所有關系類型都有意義。

    pg_class 中的一些邏輯標志被以一種懶惰的方式維護:在正確狀態時它們被保證為真,但是當條件不再為真時它們並不會被立刻重置為假。例如, relhasindex 由 CREATE INDEX 設置,但它從不會被DROP INDEX 清除。作為替代, VACUUM 會在找到無索引表后清除其 relhasindex 。這種安排避免了競爭條件並且提高了並發性。

具體內容見下:

名稱

類型

參考

描述

oid

oid

 

行標識符(隱藏屬性;必須明確選擇)

relname

name

 

表格,索引,視圖等的名稱

relnamespace

oid

pg_namespace.oid

包含此relation的名稱空間的oid

reltype

oid

pg_type .oid

與此表行類型對應的數據類型的oid(如果有的話)(對於沒有pg_type條目的索引,為零 )

reloftype

oid

pg_type .oid

對於類型表,基礎復合類型的oid,對於所有其他relation為零

relowner

oid

pg_authid.oid

relation的所有者

relam

oid

pg_am.oid

如果這是一個索引,則使用的訪問方法(B-樹,散列等)

relfilenode

oid

 

該relation的磁盤文件的名稱; 零表示這是一個“映射”relation,其磁盤文件名由低級狀態決定

reltablespace

oid

pg_tablespace.oid

存儲該relation的表空間。如果為零,則隱含數據庫的默認表空間。(如果relation沒有磁盤上的文件,則無意義。)

relpages

int4

 

該表的磁盤表示的大小(頁面大小為BLCKSZ)。這只是計划者使用的估計值。它由 VACUUM,ANALYZE和一些DDL命令(如 CREATE INDEX)更新。

reltuples

float4

 

表中的行數。這只是計划者使用的估計值。它由VACUUM,ANALYZE和一些DDL命令(如CREATE INDEX)更新。

relallvisible

int4

 

在表格的可見性圖中標記為全部可見的頁面數。這只是計划者使用的估計值。它由VACUUM,ANALYZE和一些DDL命令(如CREATE INDEX)更新。

reltoastrelid

oid

pg_class .oid

與此表關聯的TOAST表的oid,如果沒有,則為0。TOAST表在“輔助表”中存儲“超出行”的大型屬性 。

relhasindex

bool

 

如果這是一個表並且它有(或最近有)任何索引,則為真

relisshared

bool

 

如果此表在群集中的所有數據庫之間共享,則為true。只有某些系統目錄(如 pg_database)被共享。

relpersistence

char

 

p =永久表, u =未記錄表,t =臨時表

relkind

char

 

r =普通表, i =索引,S =序列,v =視圖,m =物化視圖, c =復合類型,t = TOAST表,f =外部表

relnatts

int2

 

relation中的用戶列數(系統列未計數)。pg_attribute中必須有許多相應的條目。另見pg_attribute.attnum。

relchecks

int2

 

表上CHECK約束的數量; 請參閱pg_constraint目錄

relhasoids

bool

 

如果我們為relation的每一行生成oid,則為真

relhaspkey

bool

 

如果表具有(或曾經有)主鍵,則為真

relhasrules

bool

 

如果表具有(或曾經有)規則,則為真; 請參閱pg_rewrite目錄

relhastriggers

bool

 

如果表具有(或曾經有)觸發器,則為真; 請參閱 pg_trigger目錄

relhassubclass

bool

 

如果表有(或曾經有過)任何繼承孩子,則為真

relrowsecurity

bool

 

如果表已啟用行級安全性,則為true; 請參閱 pg_policy目錄

relforcerowsecurity

bool

 

如果行級別安全性(啟用時)也為true,則也適用於表所有者; 請參閱pg_policy目錄

relispopulated

bool

 

如果relation被填充,則為真(對於除某些實例化視圖之外的所有relation都是如此)

relreplident

char

 

用於為行構成“副本標識”的列:d = default(主鍵,如果有的話),n =無,f =所有列 i =具有indisreplident set的索引或default

relfrozenxid

xid

 

在此表之前的所有交易ID已被替換為永久(“凍結”)交易ID。這用於跟蹤是否需要將表抽真空以防止事務ID環繞或允許縮小pg_clog。零(InvalidTransactionId)如果relation不是一個表。

relminmxid

xid

 

在此表之前的所有多重作業ID已由該事務ID替換。這用於跟蹤是否需要將表抽真空以防止多軸實現ID 繞回或允許縮小pg_multixact。零(InvalidMultiXactId)如果relation不是一個表。

relacl

aclitem[]

 

訪問權限; 看到GRANTREVOKE的細節

reloptions

text[]

 

特定於訪問方法的選項,如“keyword = value”字符串


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM