PG如何通過元命令獲取表文件大?
有三種方式,下面依次介紹。
1、通過元命令獲取表文件大小
通過dt+可以得到該表大小。該元命令會(huì)轉(zhuǎn)換成SQL語句去執(zhí)行,實(shí)際上是通過pg_table_size函數(shù)進(jìn)行獲取。該函數(shù)調(diào)用calulate_table_size(rel)其中rel為表的描述結(jié)構(gòu)Relation。通過這個(gè)方式計(jì)算表大小包括fsm、vm文件大小,如果有toast索引,還包括toast表大小。那么具體獲取文件大小的方式是什么呢?看calculate_relation_size函數(shù):最終通過stat函數(shù)來獲取,這個(gè)得到的是文件大小,而不是占用磁盤大小。同樣,對(duì)于toast索引也是通過這種方式計(jì)算得到。
2、內(nèi)部計(jì)算表有多少頁
通過RelationGetNumberOfBlocks只計(jì)算表主文件的多少頁,調(diào)用函數(shù)RelationGetNumberOfBlocksInFork進(jìn)行計(jì)算。該函數(shù)對(duì)于序列、索引或者分區(qū)索引,直接通過smgrnblocks->mdnblocks獲得,對(duì)于表、toast和物化視圖,調(diào)用函數(shù)table_relation_size計(jì)算出文件大小然后除以一頁大小得到多少頁。table_relation_size調(diào)用heapam_relation_size->smgrnblocks,和上一個(gè)方法不同之處在于是否需要包括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個(gè)記錄 *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ā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字
您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?