GaussDB(DWS) VACUUM總結(jié)

      網(wǎng)友投稿 1222 2025-03-31

      GaussDB(DWS) VACUUM總結(jié)


      摘要:在GaussDB(DWS)中,VACUUM的本質(zhì)就是一個“吸塵器”,用于吸收“塵埃”。而塵埃其實就是舊版本數(shù)據(jù),如果這些數(shù)據(jù)沒有及時清理,那么將會導(dǎo)致數(shù)據(jù)庫空間膨脹,性能下降,更嚴重的情況會導(dǎo)致宕機。下面將從VACUUM的作用、用法、原理等方面進行介紹。

      1 VACUUM的作用

      1)空間膨脹問題:清除廢舊元組以及相應(yīng)的索引。包括提交的事務(wù)delete的元組(以及索引)、update的舊版本(以及索引),回滾的事務(wù)insert的元組(以及索引)、update的新版本(以及索引)、copy導(dǎo)入的元組(以及索引)。

      GaussDB(DWS) VACUUM總結(jié)

      2)freeze:防止因事務(wù)ID回卷問題(Transaction ID wraparound)而導(dǎo)致的宕機,將小于OldestXmin的事務(wù)號轉(zhuǎn)化為freeze xid,更新表的relfrozenxid,更新庫的relfrozenxid,truncate clog。

      3)更新統(tǒng)計信息:VACUUM analyze時,會更新統(tǒng)計信息,使得優(yōu)化器能夠選擇更好的方案執(zhí)行sql。

      2 VACUUM命令

      VACUUM 命令存在兩種形式,VACUUM和VACUUM FULL,VACUUM命令做的是LAZY VACUUM。從字面意思就可以看出來,LAZY VACUUM是VACUUM FULL的簡化版。具體區(qū)別見下表。

      LAZY VACUUM

      VACUUM FULL

      空間清理

      如果刪除的記錄位于表的末端,其所占用的空間將會被物理釋放并歸還操作系統(tǒng)。而如果不是末端數(shù)據(jù),會將表中或索引中dead tuple(死亡元組)所占用的空間置為可用狀態(tài),從而復(fù)用這些空間

      不論被清理的數(shù)據(jù)處于何處,這些數(shù)據(jù)所占用的空間都將被物理釋放并歸還于操作系統(tǒng)。當再有數(shù)據(jù)插入后,分配新的磁盤頁面使用

      鎖類型

      共享鎖,可以與其他操作并行

      排他鎖,執(zhí)行期間基于該表的操作全部掛起

      物理空間

      不會釋放

      會釋放

      事務(wù)ID

      不回收

      回收

      執(zhí)行開銷

      開銷較小,可以定期執(zhí)行

      開銷巨大,建議確認數(shù)據(jù)庫所占磁盤頁面空間接近臨界值再執(zhí)行操作,且最好選擇數(shù)據(jù)量操作較少的時段完成

      執(zhí)行效果

      執(zhí)行后會有所提升

      執(zhí)行完后,基于該表的操作效率大大提升

      注:目前LAZY VACUUM只對行存表起作用,對列存表無效,列存表只能依靠VACUUM FULL釋放空間。

      VACUUM在GaussDB(DWS)中具體執(zhí)行語法如下:

      1)回收空間并更新統(tǒng)計信息,對關(guān)鍵字順序無要求

      VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE } [, ...] ) ] [ table_name [ (column_name [, ...] ) ] ]

      2)僅回收空間,不更新統(tǒng)計信息

      VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table_name ]

      3)回收空間并更新統(tǒng)計信息,且對關(guān)鍵字順序有要求

      VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table_name [ (column_name [, ...] ) ] ]

      重要參數(shù)說明:

      FULL 選擇VACUUM FULL清理,可以恢復(fù)更多空間,但耗時更多。

      FREEZE指定FREEZE相當于執(zhí)行VACUUM時將VACUUM_freeze_min_age參數(shù)設(shè)為0。

      VERBOSE為每個表打印一份詳細的清理工作

      ANALYZE | ANALYSE更新用于優(yōu)化器的統(tǒng)計信息,以決定執(zhí)行查詢的最有效方法。

      3 VACUUM原理

      3.1 LAZY VACUUM執(zhí)行流程

      (1)從指定的多張表中進行遍歷,從而獲取每一個表。

      (2)獲取遍歷到表的共享鎖,該鎖允許其他事務(wù)讀取。

      (3)獲取每個頁面的dead tuples(死亡元組),并freeze需要的元組。

      (4)刪除指向dead tuples的元組。

      (5)刪除dead tuples并重新分配live tuples(活動元組)。

      (6)更新目標表的FSM(用于記錄每個數(shù)據(jù)塊的空閑空)和VM(標記數(shù)據(jù)塊中是否存在需要清理的行)。

      (7)重復(fù)5,6步驟直到遍歷完該表的每一頁.

      (8)如果最后一頁沒有元組,則進行截斷。

      (9)更新與VACUUM有關(guān)的統(tǒng)計信息表和系統(tǒng)目錄。

      3.2 VACUUM FULL執(zhí)行流程

      (1)建立臨時表:數(shù)據(jù)庫創(chuàng)建一張臨時表,該表繼承老表的所有屬性。如果用戶表有名字與這個臨時表相同的,那么就會失敗。在該階段申請的行排他鎖(RowExclusiveLock)。

      (2)數(shù)據(jù)復(fù)制:將原來表中的數(shù)據(jù)復(fù)制到臨時表中。在該過程中完成堆dead tuples的清理。該階段申請的是訪問排他鎖AccessExclusiveLock。

      (3)交換表:使用新表代替老表。而交換的本質(zhì)是物理文件的交換,即臨時表帶老物理文件,老表帶新物理文件。該階段會再次申請行排他鎖(RowExclusiveLock)。

      (4)重建索引:當交換完成后,會進行索引重建,并更新統(tǒng)計信息。此時對表申請共享鎖(ShareLock)。

      (5)刪除臨時表:索引重建完成后,會將帶有老物理文件的臨時表進行刪除。

      EI企業(yè)智能 Gauss AP 數(shù)據(jù)倉庫服務(wù) GaussDB(DWS)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:WPS表格進行多表格同時編輯的方法步驟(電腦wps多人同時編輯表格)
      下一篇:什么是API文檔?--斯科特·馬文
      相關(guān)文章
      亚洲AV性色在线观看| 亚洲AV无码精品蜜桃| 亚洲AV综合色区无码一二三区| 亚洲youjizz| 亚洲码一区二区三区| 99ri精品国产亚洲| 少妇中文字幕乱码亚洲影视 | 色老板亚洲视频免在线观| 亚洲网红精品大秀在线观看| 337p日本欧洲亚洲大胆艺术| 亚洲精品在线网站| 亚洲天堂福利视频| 亚洲天堂福利视频| 亚洲一区二区三区在线观看蜜桃| 亚洲av无码片区一区二区三区| 亚洲丰满熟女一区二区v| tom影院亚洲国产一区二区| 亚洲伊人精品综合在合线| 亚洲成年人电影在线观看| 亚洲av无码专区在线| 国产精品亚洲精品青青青| 亚洲高清乱码午夜电影网| 亚洲AV之男人的天堂| 久久精品国产亚洲精品| 亚洲区小说区激情区图片区| 亚洲AV无码精品色午夜果冻不卡| 亚洲欧洲免费视频| 亚洲乱人伦精品图片| 亚洲成av人片天堂网无码】| 国产亚洲精品美女2020久久| 亚洲中文字幕伊人久久无码| 亚洲精品成人网站在线观看| 久久亚洲精品国产精品黑人| 亚洲精品无码久久毛片波多野吉衣| 亚洲一区在线视频| 亚洲综合中文字幕无线码| 亚洲av永久无码精品网址| 国产精品亚洲产品一区二区三区| 亚洲精品无码专区久久久| 亚洲爆乳精品无码一区二区三区| 久久亚洲春色中文字幕久久久 |