PostgreSQL pg_freespacemap

2021-09-16 16:09 更新
F.26.1. 函數(shù)
F.26.2. 樣例輸出

pg_freespacemap模塊提供了一種方法來檢查空閑空間映射(FSM)。它提供了一個(gè)稱為pg_freespace的函數(shù),或者準(zhǔn)確地說是兩個(gè)重載的函數(shù)。這些函數(shù)顯示空閑空間映射中為一個(gè)給定頁面所記錄的值,或者顯示關(guān)系中所有頁面的記錄值。

默認(rèn)情況下,使用僅限于超級用戶和pg_stat_scan_tables 角色的成員??梢允褂?code class="command">GRANT給其他人授予訪問權(quán)限。

F.26.1. 函數(shù)

pg_freespace(rel regclass IN, blkno bigint IN) 返回 int2

根據(jù) FSM,返回由blkno指定的關(guān)系頁面上的空閑空間總量。

pg_freespace(rel regclass IN, blkno OUT bigint, avail OUT int2)

根據(jù) FSM,顯示關(guān)系的每個(gè)頁面上的空閑空間總量。一個(gè)(blkno bigint, avail int2)元組的集合會(huì)被返回,每一個(gè)元組對應(yīng)關(guān)系中的一個(gè)頁面。

存儲(chǔ)在空閑空間映射中的值不準(zhǔn)確。它們被圓整到BLCKSZ的 1/256(對于默認(rèn)的BLCKSZ是 32 字節(jié)),并且在元組被插入和更新時(shí)它們不會(huì)被實(shí)時(shí)更新。

對于索引,被跟蹤的是整個(gè)沒有使用的頁面,而不是頁面中的空閑空間。因此,這些值可能沒有意義,只是表示一個(gè)頁面是滿的還是空的。

注意

在版本 8.4 中接口已被更改,以反映在同一個(gè)版本中新引入的 FSM 實(shí)現(xiàn)。

F.26.2. 樣例輸出

postgres=# SELECT * FROM pg_freespace('foo');
 blkno | avail 
-------+-------
     0 |     0
     1 |     0
     2 |     0
     3 |    32
     4 |   704
     5 |   704
     6 |   704
     7 |  1216
     8 |   704
     9 |   704
    10 |   704
    11 |   704
    12 |   704
    13 |   704
    14 |   704
    15 |   704
    16 |   704
    17 |   704
    18 |   704
    19 |  3648
(20 rows)

postgres=# SELECT * FROM pg_freespace('foo', 7);
 pg_freespace 
--------------
         1216
(1 row)

 


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號