首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >智能SQL审核优化工具 PawSQL 月度更新

智能SQL审核优化工具 PawSQL 月度更新

作者头像
PawSQL
发布2026-06-17 20:42:06
发布2026-06-17 20:42:06
1650
举报

一句话总结:以「正确性优先」,显著降低误报、提升对 DB2 / MSSQL / 非标准文本的兼容性,并在重写与谓词下推上做了多处鲁棒性改进。

核心亮点 1 - 优化引擎

1. 解决同名/重复 SSQ解关联优化缺陷

修复当存在 两个相同或同名的 SSQ(标量子查询/子查询片段) 时的错误重写行为,避免错误地生成重复或冲突的列引用,提升了SSQ解关联优化的健壮性与正确性。

2. 查询折叠策略II优化

新算法在做查询折叠优化时更谨慎,不再把外层需要的列随意塞进内层查询,从而避免列污染与语义偏移。

3. NOTIN子查询重写优化:改用 NFC 决定是否添加 IS NOT NULL

使用 NFC(空值判别机制)判断是否必须补 is not null,减少不必要的保护性改写,避免因盲目添加 is not null 导致语义或性能问题。

4. 深分页优化:从仅警告改为自动重写 对大量 OFFSET 情形不再只发出警告,而是尝试重写以避免全表扫描/大范围跳过带来的性能问题。

5. 谓词下推增强

  • 支持集合分支下推与派生表下推;支持内外表联合下推(2025-09-19 16:09)。
  • 解决因嵌套变量与 rank() 等窗口函数共存时的下推缺陷(2025-09-09 11:38),提升在复杂窗口/嵌套条件下的下推正确性。

6. SATTC 优化在嵌套条件场景下的改进

针对带嵌套条件的可满足性转换(SATTC)场景进行了多次鲁棒性优化,减少错误判定和误写。

核心亮点 2 - SQL 解析与兼容性增强

7. DB2 优化器兼容与语法修复

增加对 DB2 的支持(优化器兼容层),并修正此前因支持 DB2 导致的 INTERVAL 语法解析错误。

8. 支持 OUTER APPLY 语法与 SQL 预格式化

更好地兼容 MSSQL 风格语法(OUTER APPLY),并在优化前优先格式化 SQL,有利于后续解析/重写流程。

9. div 可以作为标识符

允许 div(原可能被当作算术/关键字)作为列名或标识符,提升对某些 DB 路径兼容性。

10. 兼容非标准空白字符(如 U+2003)

解析器现在能容忍诸如 U+2003 等非标准空白,减少因拷贝黏贴文本带来的解析失败。

核心亮点 3 - 验证流程与变量处理

11. validateSyntax 优化

语法校验更高效/更准确,减少误判。

12. 在性能验证时都会先进行 SQL 转换以消除变量影响

统一在验证前把变量处理掉,避免因为 SQL 中变量导致的验证失败或误报。

核心亮点 4 - 分区/索引/规则检测

13. 索引列上的运算误报警排除聚合函数

当索引列参与聚合函数时,不再误判为因运算而失效的索引使用,从而减少误报。

14. 分区表规则与健壮性提升

分区相关规则更健壮,对常见边界情况的检测更准确。

15. 修复并减少冗余 indexusage 报告

减少重复或冗余的索引使用问题提醒,输出更加简洁有用。

核心亮点 5 - 可观测性与其它工程质量改进

16. 为 MSSQL 脚本添加违规规则所属行信息

报告中包含更精确的行号/位置信息,便于定位与修复。

17. 为 SQL对象 添加行信息

提升问题定位能力,支持前端页面更友好的交互(见下图)。

18. 修复窗口函数反序列化

一系列稳定性修复,减少因序列化/反序列化或占位表达式带来的异常。

结语

本期更新以“正确性优先、兼容性与可观测性加强”为主线:针对子查询重写、谓词下推与 SATTC 场景的改进,配合解析器对 DB2 / 非标准字符的友好性提升,使 PawSQL 在复杂、异构 SQL 环境下更稳健。建议团队在升级到最新版时在预生产做回归验证,关注深分页优化的重写效果与有涉及 SSQ 重写的关键查询。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 核心亮点 1 - 优化引擎
    • 核心亮点 2 - SQL 解析与兼容性增强
    • 核心亮点 3 - 验证流程与变量处理
    • 核心亮点 4 - 分区/索引/规则检测
    • 核心亮点 5 - 可观测性与其它工程质量改进
  • 结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档