[Postgres] 規(guī)劃器的代價(jià)估算模型

1. 磁盤(pán)

1.1 seq_page_cost

描述:順序磁盤(pán)訪問(wèn)時(shí)單個(gè)頁(yè)面的讀取開(kāi)銷(xiāo)住闯,默認(rèn)為1.0

場(chǎng)景說(shuō)明:在磁盤(pán)關(guān)系型數(shù)據(jù)庫(kù)的代價(jià)估算模型中换途,假定順序訪問(wèn)磁盤(pán)的開(kāi)銷(xiāo)為1,再給出其他操作的相對(duì)開(kāi)銷(xiāo)写穴。

1.2 random_page_cost

描述:隨機(jī)磁盤(pán)訪問(wèn)時(shí)單個(gè)頁(yè)面的讀取開(kāi)銷(xiāo)币喧,默認(rèn)為4.0

場(chǎng)景說(shuō)明:默認(rèn)情況下,隨機(jī)IO和順序IO的代價(jià)是4:1的關(guān)系侠坎,這主要是針對(duì)于傳統(tǒng)的HDD而言的。對(duì)于當(dāng)前廣泛使用的SSD裙盾,該代價(jià)可能需要調(diào)整实胸。

2. 處理器

2.1 cpu_tuple_cost

描述:處理每個(gè)元組的處理器開(kāi)銷(xiāo),默認(rèn)為0.01番官。對(duì)于一個(gè)頁(yè)面中的元組庐完,需要解析其中的字段,進(jìn)行投影組裝出新的元組

2.2 cpu_index_tuple_cost

描述:處理每個(gè)索引元組的處理器開(kāi)銷(xiāo)徘熔,默認(rèn)為0.005

2.3 cpu_operator_cost

描述:處理每個(gè)運(yùn)算符或者函數(shù)調(diào)用的處理器開(kāi)銷(xiāo)门躯,默認(rèn)為0.0025

場(chǎng)景說(shuō)明:默認(rèn)情況下,順序IO和元組處理的代價(jià)是100:1的關(guān)系酷师,這主要是針對(duì)于傳統(tǒng)的HDD和一般的處理器而言的讶凉。對(duì)于磁陣染乌、SSD等存儲(chǔ)設(shè)備,或者頻率較高的處理器懂讯,該代價(jià)比例可能需要調(diào)整慕匠。

3. 內(nèi)存、磁盤(pán)

3.1 effective_cache_size

描述:在一次索引掃描中可用的文件系統(tǒng)內(nèi)核緩沖區(qū)的有效大小

場(chǎng)景說(shuō)明:該參數(shù)當(dāng)前只用在估計(jì)索引掃描的磁盤(pán)IO開(kāi)銷(xiāo)域醇,用于計(jì)算一次索引掃描需要訪問(wèn)的所有頁(yè)面在內(nèi)核緩沖區(qū)中已經(jīng)存在的頁(yè)面數(shù)台谊。該參數(shù)的值越大,計(jì)算出的索引掃描的開(kāi)銷(xiāo)也越小譬挚。

3.2 work_mem

描述:進(jìn)行內(nèi)部排序操作和哈希操作的工作空間锅铅,在開(kāi)始使用臨時(shí)的磁盤(pán)文件之前可用的內(nèi)存大小

場(chǎng)景說(shuō)明:該參數(shù)會(huì)用來(lái)估計(jì)排序和哈希操作的磁盤(pán)IO開(kāi)銷(xiāo),用于計(jì)算一次排序或哈希需要處理的所有數(shù)據(jù)可以緩存在內(nèi)存中的數(shù)據(jù)量减宣。該參數(shù)的值越大盐须,計(jì)算出的排序或哈希的開(kāi)銷(xiāo)也越小。

4. 統(tǒng)計(jì)信息

4.1 表相關(guān)的統(tǒng)計(jì)信息

描述:數(shù)據(jù)特征:堆表中的頁(yè)面數(shù)漆腌、元組數(shù)贼邓,索引中的頁(yè)面數(shù),子句選擇率等闷尿。ANALYZE操作會(huì)收集這些統(tǒng)計(jì)信息塑径,然后把結(jié)果保存到系統(tǒng)表pg_statistic和pg_class里。在系統(tǒng)表pg_statistic中填具,記錄了每個(gè)表內(nèi)容的統(tǒng)計(jì)信息统舀,如一個(gè)表中某個(gè)字段的平均字節(jié)數(shù)、空值占比等劳景,通過(guò)這些信息可以計(jì)算出某個(gè)條件表達(dá)式匹配的記錄數(shù)目誉简。

場(chǎng)景說(shuō)明:系統(tǒng)中的autovacuum進(jìn)程會(huì)周期性地運(yùn)行ANALYZE操作,進(jìn)行統(tǒng)計(jì)信息的收集盟广。 頻繁刪改操作會(huì)引起數(shù)據(jù)發(fā)生膨脹闷串,批量插入會(huì)使得數(shù)據(jù)量迅速增長(zhǎng),這些情況都會(huì)出現(xiàn)統(tǒng)計(jì)信息的變化筋量,最終引起查詢(xún)的執(zhí)行計(jì)劃發(fā)生變化烹吵,這時(shí)候性能很容易出現(xiàn)突變。

5. 總結(jié)

在查詢(xún)的規(guī)劃階段毛甲,規(guī)劃器會(huì)根據(jù)查詢(xún)語(yǔ)法樹(shù)創(chuàng)建出所有可能的執(zhí)行路徑年叮,計(jì)算出不同路徑的執(zhí)行開(kāi)銷(xiāo)具被,并選擇出總體開(kāi)銷(xiāo)最小的執(zhí)行路徑玻募。每個(gè)路徑的執(zhí)行開(kāi)銷(xiāo)就是通過(guò)上表的信息計(jì)算出來(lái)的,主要包括磁盤(pán)IO的開(kāi)銷(xiāo)一姿、處理器的開(kāi)銷(xiāo)等七咧。

因?yàn)樯厦娴男畔⒑同F(xiàn)實(shí)情況一般都會(huì)存在差別跃惫,而且實(shí)際運(yùn)行過(guò)程中可能還會(huì)存在其他的開(kāi)銷(xiāo)(如資源的爭(zhēng)用),所以估算出來(lái)的開(kāi)銷(xiāo)不一定非常準(zhǔn)確艾栋,最終選擇出來(lái)的執(zhí)行路徑也不一定就是總體開(kāi)銷(xiāo)最小的爆存。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蝗砾,隨后出現(xiàn)的幾起案子先较,更是在濱河造成了極大的恐慌,老刑警劉巖悼粮,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闲勺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡扣猫,警方通過(guò)查閱死者的電腦和手機(jī)菜循,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)申尤,“玉大人癌幕,你說(shuō)我怎么就攤上這事∶链” “怎么了勺远?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)时鸵。 經(jīng)常有香客問(wèn)我谚中,道長(zhǎng),這世上最難降的妖魔是什么寥枝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任宪塔,我火速辦了婚禮,結(jié)果婚禮上囊拜,老公的妹妹穿的比我還像新娘某筐。我一直安慰自己,他們只是感情好冠跷,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布南誊。 她就那樣靜靜地躺著,像睡著了一般蜜托。 火紅的嫁衣襯著肌膚如雪撇寞。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天炒事,我揣著相機(jī)與錄音颗管,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛重挑,可吹牛的內(nèi)容都是我干的嗓化。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谬哀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼刺覆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起史煎,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谦屑,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后篇梭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伦仍,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年很洋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了充蓝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喉磁,死狀恐怖谓苟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情协怒,我是刑警寧澤涝焙,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站孕暇,受9級(jí)特大地震影響仑撞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妖滔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一隧哮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧座舍,春花似錦沮翔、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至承二,卻和暖如春榆鼠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背亥鸠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工妆够, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓责静,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親盖桥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子灾螃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)揩徊,斷路器腰鬼,智...
    卡卡羅2017閱讀 134,601評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,522評(píng)論 25 707
  • 引子 對(duì)于一條SQL,開(kāi)發(fā)同學(xué)最先關(guān)心的啥塑荒? 我覺(jué)得還不到這個(gè)SQL在數(shù)據(jù)庫(kù)的執(zhí)行過(guò)程熄赡,而是這條SQL是否能盡快的...
    大頭8086閱讀 2,624評(píng)論 2 14
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法齿税,內(nèi)部類(lèi)的語(yǔ)法彼硫,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法凌箕,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,587評(píng)論 18 399
  • 心靈自由寫(xiě)作第二篇之“自我介紹” 今天的寫(xiě)作主題是“自我介紹”牵舱,回想起對(duì)自己的過(guò)往介紹串绩,往往是比較簡(jiǎn)單,現(xiàn)在一個(gè)人...
    喬大衛(wèi)REIKI閱讀 290評(píng)論 3 5