大數據“復活”記
782
2025-03-31
1.1?冗余會話清理
現場通常使用Data Studio進行DWS數據庫連接,很多人使用關閉后不關閉窗口,導致數據庫連接仍然存在,后臺大量堆積Data Studio查詢作業,導致DWS集群查詢無響應。可以參照以下超長會話清理方式進行操作。
注意:該清理操作,需要在每個CN上都執行。
-- 查詢持續運行時間超過一天的會話
SELECT * FROM PG_STAT_ACTIVITY ? WHERE ? useName <> 'Ruby' and state ? <> 'idle' and current_timestamp - ? query_start > interval '1 days';
--殺掉會話
SELECT ? PG_TERMINATE_BACKEND(pid) FROM PG_STAT_ACTIVITY WHERE ? useName <> 'Ruby' and state ? <> 'idle' and current_timestamp - ? query_start > interval '1 days';
?? 實踐建議:建議運維人員定時執行該操作,及時清理垃圾會話,避免不佳使用習慣對數據庫造成影響。
1.2?磁盤垃圾回收
在對表做了大量更新和刪除之后,會產生表的膨脹現象,導致全表掃描性能劣化非常嚴重。在現場發現,垃圾數據多了,會導致全表掃描IO量達到正常值200倍以上,并且select * from {tableName} limit 100; 這樣的簡單查詢,也會受到影響。
可以通過如下語句查詢數據庫內部表的臟頁情況,如果發現臟頁dirty_page_rate非常高,超過30,建議及時進行VACUUM FULL。
SELECT * FROM ? PGXC_GET_STAT_ALL_TABLES
WHERE schemaName NOT IN('pg_toast', 'pg_catalog', 'information_schema', 'cstore','pmk')
ORDER BY dirty_page_rate DESC;
注意:VACUUM FULL會導致當前表進入只讀,所以需要選擇合適時間執行。
VACUUM FULL ANALYZE {tableName};
?? 實踐建議:建議定期對整庫進行VACUUM,個別垃圾數據比較頻繁的表,可以頻率更加頻繁一些。
1.3? 分布鍵調整
當前很多使用場景中建表沒有指定分布鍵,系統默認使用表中的第一列作為分布鍵,這不僅導致數據傾斜嚴重,極端情況下,數據可能全部只分布在一個DN中,嚴重影響查詢效率。數據傾斜檢查辦法如下:
SELECT * FROM PGXC_GET_TABLE_SKEWNESS ORDER ? BY SKEWRATIO DESC;
PGXC_GET_TABLE_SKEWNESS視圖字段信息如下:
名稱
類型
描述
schemaname
name
表所在的模式名。
tablename
name
表名。
totalsize
numeric
表的總大小,單位Byte。
avgsize
numeric(1000,0)
表大小平均值(totalsize/DN個數,該值為平均分布的理想情況下,表在各DN占用空間大小)。
maxratio
numeric(4,3)
單DN表大小最大值占比(表在各DN占用空間的最大值/totalsize)。
minratio
numeric(4,3)
單DN表大小最小值占比(表在各DN占用空間的最小值/totalsize)。
skewsize
bigint
表分布傾斜值(單DN表大小最大值 - 單DN表大小最小值)。
skewratio
numeric(4,3)
表分布傾斜率(skewsize/totalsize)。
skewstddev
numeric(1000,0)
表分布標準方差(在表大小一定的情況下,該值越大表明表的整體分布情況越傾斜)。
如果發現數據傾斜,或者在查詢過程中,執行計劃不合理,產生大量數據重分布,整改操作步驟如下:
1.? 創建新表,重新指定分布鍵,導入數據到新表中
2.? 修改原始表名稱,并修改新表為正式表名稱,然后刪除原始舊表。
3.? 對新表執行ANALYZE。
?? 實踐建議:建議對數據庫內部所有表進行傾斜檢查,調整分布鍵。
數據庫 數據倉庫服務 GaussDB(DWS)
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。