该技能提供端到端的 Snowflake 查询优化流程,覆盖从获取 SQL、改写、等价性验证、基准测试到报告的全过程。
主要用途:
- 对仓库路径中的 SQL 文件(可选行范围)或 Snowflake query_id 进行优化。
- 优先委托 altimate-code 执行仓库操作,否则回退到直接运行 Snowflake SQL。
使用前提:
- 必须安装并配置 altimate-code 及 Snowflake 连接,或拥有可用的 Snowflake 客户端(如 snowsql、dbt 适配器、Python snowflake-connector-python 等)及账户凭据。
- 角色需具备 SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY 的 SELECT 权限,或可运行 INFORMATION_SCHEMA.QUERY_HISTORY() 的权限;需对基线查询所用仓库有 USAGE 权限。
工作流程:
- 获取查询(≤30秒):从仓库路径读取(dbt 模型需先编译),或通过 query_id 查询 QUERY_HISTORY;使用临时表进行后续验证时要求单会话。
- 诊断(≤45秒):优先使用 altimate-code,否则拉取 GET_QUERY_OPERATOR_STATS;识别未修剪、溢出、SELECT *、连接爆炸、重复子查询、非必要 ORDER BY 等问题。
- 改写(≤75秒):仅应用已识别修复,保持选择列表顺序、别名、行粒度不变;不添加/移除 LIMIT;不改变 UNION 语义;若变更会改变结果集则跳过并说明。
- 等价性验证(强制硬停止):禁用结果缓存,将原始与优化查询物化为临时表;比较行数和 HASH_AGG 签名,并进行分组多重性检查(使用 IS NOT DISTINCT FROM);任一检查失败则丢弃改写并报告差异。
- 测量与报告:在冷缓存条件下运行优化查询,从 INFORMATION_SCHEMA 获取新 query_id 的统计信息,生成报告。
限制与安全:
- 若输入为 query_id,要求 query_type = 'SELECT';若为仓库路径,检查首条语句是否为 SELECT 或 WITH ... SELECT;否则停止,不重新执行 DML/DDL。
- 目标运行时 ≤5 分钟,硬上限 6 分钟(等价性验证和基准测试重新运行除外)。
- 不适用于:粘贴 SQL 文本且无需等价性验证、从 query_id 快速改写且无需重跑或验证、查找候选查询、重构 dbt 模型。
- 未提供收费、价格或效果保证等信息。