PG如何通過元命令獲取表文件大小?
有三種方式,下面依次介紹。
1、通過元命令獲取表文件大小
通過dt+可以得到該表大小。該元命令會轉(zhuǎn)換成SQL語句去執(zhí)行,實(shí)際上是通過pg_table_size函數(shù)進(jìn)行獲取。該函數(shù)調(diào)用calulate_table_size(rel)其中rel為表的描述結(jié)構(gòu)Relation。通過這個方式計(jì)算表大小包括fsm、vm文件大小,如果有toast索引,還包括toast表大小。那么具體獲取文件大小的方式是什么呢?看calculate_relation_size函數(shù):最終通過stat函數(shù)來獲取,這個得到的是文件大小,而不是占用磁盤大小。同樣,對于toast索引也是通過這種方式計(jì)算得到。
2、內(nèi)部計(jì)算表有多少頁
通過RelationGetNumberOfBlocks只計(jì)算表主文件的多少頁,調(diào)用函數(shù)RelationGetNumberOfBlocksInFork進(jìn)行計(jì)算。該函數(shù)對于序列、索引或者分區(qū)索引,直接通過smgrnblocks->mdnblocks獲得,對于表、toast和物化視圖,調(diào)用函數(shù)table_relation_size計(jì)算出文件大小然后除以一頁大小得到多少頁。table_relation_size調(diào)用heapam_relation_size->smgrnblocks,和上一個方法不同之處在于是否需要包括fsm、vm在內(nèi)。
3、內(nèi)部估算表大小
通過estimate_rel_size->table_relation_estimate_size->heapam_estimate_rel_size估算表有多少頁、多少記錄:
curpages = RelationGetNumberOfBlocks(rel);//真實(shí)多少頁//pg_class中統(tǒng)計(jì)的多少頁和多少記錄relpages = (BlockNumber) rel->rd_rel->relpages;reltuples = (double) rel->rd_rel->reltuples;//真實(shí)頁數(shù)少于10,真實(shí)記錄少于0,且無子表,那么估算頁數(shù)為10if (curpages < 10 && reltuples < 0 && !rel->rd_rel->relhassubclass) curpages= 10;if (curpages == 0){//當(dāng)前0頁,那么0個記錄 *tuples= 0;}if (reltuples >= 0 && relpages> 0) density= reltuples / (double) relpages;//統(tǒng)計(jì)平均每頁多少記錄else{ tuple_width = get_rel_data_width(rel,attr_widths); tuple_width += overhead_bytes_per_tuple; density = usable_bytes_per_page /tuple_width;}*tuples = rint(density * (double) curpages);

發(fā)表評論
最新活動更多
-
8月5日立即報(bào)名>> 【在線會議】CAE優(yōu)化設(shè)計(jì):醫(yī)療器械設(shè)計(jì)的應(yīng)用案例與方案解析
-
8月14日立即報(bào)名>> 【在線研討會】解析安森美(onsemi)高精度與超低功耗CGM系統(tǒng)解決方案
-
精彩回顧立即查看>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 7月30日- 8月1日 2025全數(shù)會工業(yè)芯片與傳感儀表展
-
精彩回顧立即查看>> 全數(shù)會2025(第六屆)機(jī)器人及智能工廠展
-
精彩回顧立即查看>> OFweek 2025 具身機(jī)器人動力電池技術(shù)應(yīng)用大會
推薦專題
- 1 AI產(chǎn)業(yè)的新高度!英偉達(dá)成為全球首家市值破4萬億美元的公司
- 2 傳魏建軍與賈躍亭合作,長城汽車出海美國
- 3 一文讀懂:到底什么是 “具身智能” ?
- 4 黃仁勛:與雷軍長期合作,共探AI智駕
- 5 具身智能泡沫爭議下,華映資本尋找「穿越周期者」
- 6 中國平安們欲靠AI守“陣地”
- 7 官宣:智元機(jī)器人借殼上市,A股人形機(jī)器人第一股!
- 8 華為讓渡“三界”銷售主導(dǎo)權(quán),智界高管:終于能全力奔跑了
- 9 借仿生手實(shí)現(xiàn)突圍,國產(chǎn)靈巧手破局“不可能三角”
- 10 DeepSeek R2加持,中國AI與芯片產(chǎn)業(yè)迎來新一輪協(xié)同進(jìn)化