1 背景
用户查询SQL语句比较慢,用户为了解决性能问题,在执行的SQL上加了一句 set hg_experimental_enable_multi_count_distinct_rewrite=on(示意),以用于对sql查询进行加速。
之前数据模型的SQL查询,不支持这种用法,经过优化,支持了该功能,方便用户使用业务库本身的性能优化策略。
前提条件
注意:不同数据库的执行语句存在语法差异,请根据具体数据库的语法规范调整。
2 具体操作
1、需要开启系统开关配置
在运维设置/系统选项/高级设置 中设置:CONFIG_CENTER_SHOW_ENABLE=true。
2、系统监控/配置中心/新增配置:
- DataId: datamodel(默认是这个,不能写其他)
- Group: sqlOptimize(默认是这个,不能写其他)
- 配置类型:json
配置内容:
[ { "modelId": "be0d8c420bc41401276ee5f3fb4788dc", // 模型ID "preProcessStatement": ["SET sql_mode='STRICT_TRANS_TABLES';"], // 前置执行 "postProcessStatement": ["SET sql_mode='STRICT_TRANS_TABLES';"] // 后置执行 } ]
如下图所示:
2.1 MDX引擎效果
2.2 SQL引擎效果
因为目前模型一次sql一个日志,暂时没有把前置后置sql单独出来记录,把presql和postsql拼接到原来sql上面作为注释: