DWS优秀实践之数据库性能提升

网友投稿 636 2022-05-29

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';

Ø  实践建议:建议运维人员定时执行该操作,及时清理垃圾会话,避免不佳使用习惯对数据库造成影响。

DWS优秀实践之数据库性能提升

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小时内删除侵权内容。

上一篇:Vim常用按键大全
下一篇:Scratch编程开启小朋友们的奇妙创作之旅
相关文章