您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么安裝使用PostgreSQL中pageinspcet插件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么安裝使用PostgreSQL中pageinspcet插件”吧!
一般來說,數據表數據物理存儲在非易失性存儲設備上面,PG也不例外。如下圖所示,數據表中的數據存儲在N個數據文件中,每個數據文件有N個Page(大小默認為8K,可在編譯安裝時指定)組成。Page為PG的最小存取單元。
普通數據表存儲結構
數據頁Page由頁頭、數據指針數組(ItemIdData)、可使用的空閑空間(Free Space)、實際數據(Items)和特殊空間(Special Space)組成。
A、頁頭存儲LSN號、校驗位等元數據信息,占用24Bytes
B、數據指針數組存儲指向實際數據的指針,數組中的元素ItemId可理解為相應數據行在Page中的實際開始偏移,數據行指針ItemID由三部分組成,前15位為Page內偏移,中間2位為標志,后面15位為長度,詳細解析可參見附錄
C、空閑空間為未使用可分配的空間,ItemID從空閑空間的頭部開始分配,Item(數據行)從空閑空間的尾部開始
D、實際數據為數據的行數據(每種數據類型的存儲格式后續再解析)
E、特殊空間用于存儲索引訪問使用的數據,不同的訪問方法數據不同
如何簡單快速方便的查看Page中的內容?不同于Oracle各種dump,在PG中可以方便的使用pageinspect插件提供的各種函數查看Page中的內容。
得益于PG良好的擴展性,安裝很簡單:
#cd $PGSRC/contrib/pageinspect
#make
#make install
#psql -d testdb
testdb#create extension pageinspect; -- 首次使用需創建Extension
-- 創建測試表
drop table if exists t_new;
create table t_new (id char(4),c1 varchar(20));
insert into t_new values('1','#');
-- 查看page header&item
SELECT * FROM page_header(get_raw_page('t_new', 0));
select * from heap_page_items(get_raw_page('t_new',0));
Page Header&Item
-- 查看Page中的raw內容
\x
select * from get_raw_page('t_new', 0);
Page頭部內容
Page尾部內
到此,相信大家對“怎么安裝使用PostgreSQL中pageinspcet插件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。