GaussDB(DWS)运维 :遇到truncate执行慢,怎么办?

摘要: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的语句

 

点击关注,第一时间了解华为云新鲜技术~

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4526289/blog/5608627