W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
pg_visibility
模塊提供了一種方式來檢查一個表的可見性映射(VM)以及頁級別的可見性信息。它還提供了函數來檢查可見性映射的完整性以及強制重建可見性映射。
有三個不同的位被用來存儲有關頁級別可見性的信息。 可見性映射中的“全部可見”位表示一個關系的對應頁面上的所有元組對每一個當前和未來事務都可見。 可見性映射中的“全部凍結”位表示該頁上的每一個元組都被凍結, 也就是說直到在那個頁面上對一個元組進行插入、更新、 刪除或者鎖定之前都不需要用 vacuum 對該頁面進行修改。 頁面頭部的PD_ALL_VISIBLE
位具有和可見性映射中“全部可見”位相同的含義, 但是它存儲在數據頁面本身中而不是存儲在單獨的數據結構中。這兩個位通常是相互一致的,
但是有時在崩潰恢復后會出現(xiàn)頁面的“全部可見”位被設置而可見性映射位被清除的情況, 由于在pg_visibility
檢查了可見性映射之后, 且在它檢查數據頁面之前發(fā)生了修改,報告的值也會不一致。 任何導致數據損壞的事件也可能導致這些位不一致。
顯示有關PD_ALL_VISIBLE
的信息的函數代價比那些查看可見性映射的函數要高很多,因為它們必須讀取關系的數據塊而不是只讀?。ㄐ『芏嗟模┛梢娦杂成洹n愃频?,檢查關系的數據塊的函數也很昂貴。
pg_visibility_map(relation regclass, blkno bigint, all_visible OUT boolean, all_frozen OUT boolean) returns record
為給定關系的給定塊返回其在可見性映射中的“全部可見”和“全部凍結”位。
pg_visibility(relation regclass, blkno bigint, all_visible OUT boolean, all_frozen OUT boolean, pd_all_visible OUT boolean) returns record
為給定關系的給定塊返回其在可見性映射中的“全部可見”和“全部凍結”位,外加塊的PD_ALL_VISIBLE
位。
pg_visibility_map(relation regclass, blkno OUT bigint, all_visible OUT boolean, all_frozen OUT boolean) returns setof record
為給定關系的每一塊返回其在可見性映射中的“全部可見”和“全部凍結”位。
pg_visibility(relation regclass, blkno OUT bigint, all_visible OUT boolean, all_frozen OUT boolean, pd_all_visible OUT boolean) returns setof record
為給定關系的每一塊返回其在可見性映射中的“全部可見”和“全部凍結”位,外加每一塊的PD_ALL_VISIBLE
位。
pg_visibility_map_summary(relation regclass, all_visible OUT bigint, all_frozen OUT bigint) returns record
根據可見性映射返回關系中“全部可見”頁面和“全部凍結”頁面的數量。
pg_check_frozen(relation regclass, t_ctid OUT tid) returns setof tid
返回存儲在可見性映射中被標為“全部凍結”的頁面中的非凍結元組的 TID。 如果這個函數返回一個非空的 TID 集合,則可見性映射已經損壞。
pg_check_visible(relation regclass, t_ctid OUT tid) returns setof tid
返回存儲在可見性映射中標記為全部可見的頁面中的非全部可見元組的TID。 如果此函數返回非空的一組TID,則可見性映射已損壞。
pg_truncate_visibility_map(relation regclass) returns void
為給定關系截斷可見性映射。如果您認為該關系的可見性映射已損壞并希望強制重建它, 則該函數非常有用。在這個函數被執(zhí)行后,在給定關系上進行的第一次VACUUM
將會掃描關系中的每一個頁面并且重建可見性映射。(在完成之前, 查詢會將可見性映射看做包含的全是零。)
默認情況下,這些函數只有超級用戶和pg_stat_scan_tables
角色的成員可以執(zhí)行, 除了pg_truncate_visibility_map(relation regclass)
只能由超級用戶執(zhí)行之外。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: