摘要:truncate執行慢,耗時長達幾十到幾百秒,這可怎么破?
本文分享自華為云社區《GaussDB(DWS)運維 -- truncate慢》,作者: 譡里個檔,
【現象】truncate執行慢,耗時長達幾十到幾百秒
【根因】truncate表被查詢表的DML陳述句阻塞
【方案】建議truncate表和查詢表動作的依賴,保證二者串行執行
【定位】假如陳述句 truncate dwr_tdc_dim_inv_country_reg_d 執行時間過久,且執行的truncate陳述句的執行開始時間是:2022-12-07 08:30:12
執行結束時間是:2022-12-07 08:40:12
那么可以使用如下SQL查詢到這段時間查詢到truncate的目標表的查詢陳述句
注:這個陳述句要在postgres庫里面執行
SELECT start_time, -- SQL執行開始時間 finish_time, -- SQL執行結束時間 duratuin, -- SQL執行時間,單位ms query FROM pgxc_wlm_session_info WHERE start_time >= '2022-12-07 08:30:12' + interval '20 min' -- 開始時間比truncate開始時間提前20min以內 AND finish_time <= '2022-12-07 08:30:12' + interval '1 min' -- 結束時間跟truncate結束時間基本一致 AND query like '%dwr_tdc_dim_inv_country_reg_d%' -- 查詢到了truncate的表
輸出的query就是影響到truncate陳述句的陳述句,一般finish_time比truncate陳述句執行時間結束時間略小的陳述句就是阻塞truncate的陳述句
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/539858.html
標籤:其他
