/write-query - 编写优化的 SQL

如果你看到不熟悉的占位符或需要检查已连接的工具,请参阅 CONNECTORS.md

根据自然语言描述编写 SQL 查询,针对你的特定 SQL 方言进行优化,并遵循最佳实践。

用法

/write-query <你需要的数据的描述>

工作流程

1. 理解需求

解析用户的描述以识别:

2. 确定 SQL 方言

如果尚不知道用户的 SQL 方言,询问他们使用哪一种:

在同一会话中记住方言,供后续查询使用。

3. 发现模式(如果数据仓库已连接)

如果数据仓库 MCP 服务器已连接:

  1. 根据用户的描述搜索相关表
  2. 检查列名、类型和关系
  3. 检查影响性能的分区或聚簇键
  4. 查找可能简化查询的预构建视图或物化视图

4. 编写查询

遵循以下最佳实践:

结构:

性能:

可读性:

方言特定优化:

5. 呈现查询

提供:

  1. 完整的查询,放在带语法高亮的 SQL 代码块中
  2. 简要解释每个 CTE 或部分的功能
  3. 性能说明(如相关):预期成本、分区使用情况、潜在瓶颈
  4. 修改建议——如何调整以适应常见变化(不同的时间范围、不同的粒度、额外的筛选条件)

6. 提供执行选项

如果数据仓库已连接,主动提出运行查询并分析结果。如果用户想自行运行,查询已准备好可复制粘贴。

示例

简单聚合:

/write-query 按状态统计过去 30 天的订单数量

复杂分析:

/write-query 群组留存分析——按注册月份分组用户,然后显示在注册后 1、3、6 和 12 个月仍活跃(至少有一次事件)的百分比

性能关键型:

/write-query 我们有一个 5 亿行按日期分区的事件表。找出过去 7 天内事件数排名前 100 的用户及其最新事件类型。

技巧