SuperAPI AI 工具集

optimizing-query-text

数据与分析

查看项目

更新于 10-15 16:49

技能介绍

用途:根据用户提供的 SQL 文本优化 Snowflake 查询性能,输出可直接在 Snowflake 执行的优化后 SQL。输出格式要求只返回纯 SQL,不带 Markdown、解释或列表。

主要能力与优化模式:

  1. 过滤列上的函数改写为等价范围条件,例如 WHERE DATE(ts) = '2024-01-01' 改为 WHERE ts >= '2024-01-01' AND ts < '2024-01-02',以利于分区裁剪;动态值、两列比较、星期等无连续范围的函数不可改。
  2. JOIN 列上的函数去除,如 ON CAST(a.id AS VARCHAR) = CAST(b.id AS VARCHAR) 改为 ON a.id = b.id(需类型一致);类型确实不同或粒度不同则不可改。
  3. NOT IN 子查询在子查询列可确认非 NULL 时改为 NOT EXISTS;存在 NULL 或多列 NOT IN 时不可改。
  4. 重复出现的相同子查询提取为 CTE;相关子查询不可提取。
  5. 隐式逗号连接改为显式 JOIN 语法,始终安全。

限制与安全规则:必须保证结果完全一致(相同列、相同顺序、相同别名、相同行、相同 ORDER BY、相同 LIMIT,不新增 LIMIT)。禁止 UNION 改 UNION ALL、修改窗口函数、添加冗余过滤、改动列名或别名。无法保证等价时返回原查询。优先顺序为:过滤列日期函数、隐式连接改显式 JOIN、NULL 安全的 NOT IN 改 NOT EXISTS。输出须为可在 Snowflake 无错执行的合法 SQL。

适用场景:需要快速优化 Snowflake SQL 性能、且要求语义不变的场景。具体安装与调用方式资料未提供。