更新时间:2022-07-29 GMT+08:00

案例:调整中间表存储方式

现象描述

GaussDB(DWS)中行存表天然的使用行执行引擎,列存表天然的使用列执行引擎。如果一个SQL语句涉及的表既有行存表又有列存表,系统会自动选择行执行引擎。由于列执行引擎的性能(除indexscan相关的算子)比行执行引擎性能要好很多,因此一般建议使用列存表。特别是对一些中间结果集转储的表,一定要分析清楚,使用合适的表存储类型。

某局点测试过程遇到如下的执行计划,客户希望将性能提升至3s内返回结果。

优化分析

经过分析发现计划走了行引擎。根本原因是:临时计划表input_acct_id_tbl和中间结果转储表row_unlogged_table使用了行存表。

修改这两个表为列存表之后,性能提升至1.6s。