数仓实践丨表扫描时过滤行数过多引起的性能瓶颈问题
💡
原文中文,约3100字,阅读约需8分钟。
📝
内容提要
本文介绍了一种GaussDB(DWS)性能调优的案例,通过调整局部聚簇键PCK和改写where条件中的in语句,解决了表扫描时过滤行数过多引起的性能瓶颈问题,最终将SQL语句的执行时间减少为487ms。
🎯
关键要点
- 本文介绍了GaussDB(DWS)性能调优的案例。
- 问题描述:对12亿数据量的大表进行扫描,过滤99%的数据,性能瓶颈在于表扫描。
- 原始SQL语句复杂,包含多个过滤条件。
- 性能分析显示,局部聚簇键PCK未包含所有过滤条件,导致扫描效率低下。
- 局部聚簇键PCK可以通过多列指定,但一般不建议超过2列。
- where条件中的in语句值过多,导致性能问题,可以用or改写以优化查询。
- 经过调整后,SQL语句执行时间减少至487ms。
➡️