探索BI系统搭建的必要性与AI技术的应用潜力
614
2022-05-29
A. 背景:客户在使用DWS时,经常会出现执行一个sql很久不返回结果,导致业务性能低下,从而报障。
现象:一个业务sql执行很久不出结果
定位方法:DWS在经常变化的表需要定期做统计优化查询,具体场景如下:
1 经常变化的表,如果经常insert语句到表中,需要做analyze 表,具体语句为
Analyze tablename;
2 经常变化的表,如果经常删除delete数据,需要做valcumm full 表,具体语句为
Valcumm full tablename
注:执行valcumm full 语句时注意不能有其他任务在跑。
注:定位技巧:查询表大小
select * from pg_size_pretty(pg_table_size('tablename'));
判断方法:如果表非常大,而实际只有很少数据,和真实大小对应不上,那么应该进行valcumm full 表进行磁盘碎片整理。
B. 背景:客户在使用DWS时,会出现各种原因sql阻塞被锁,导致业务sql一直卡主执行时间长。
定位方法:pg_stat_activity表记录了后台正在运行的sql相关信息
具体相关定位方法如下:
1 查询后台活跃sql
SELECT pid,datname, usename, state,waiting, query FROM pgxc_stat_activity WHERE state <> 'idle';
2 查询后台业务有锁的sql
SELECT pid,datname, usename, state,waiting, query FROM pgxc_stat_activity WHERE state <> 'idle' and waiting=true;
3 判断方法如下
a 如果没有锁,那么查找相关业务sql,按照上面A的判断方法进行处理。
b 如果有锁,那么查找出pid字段,使用如下函数,结束任务,释放锁
SELECT pg_terminate_backend(pid);
数据仓库服务 GaussDB(DWS) SQL
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。