SuperAPI AI 工具集

sql-query-optimizer

数据与分析

查看项目

更新于 10-15 09:42

技能介绍

用途

SQL Query Optimizer 是一个用于数据库查询性能优化的 AI 技能。它的定位是资深数据库管理员(DBA)与 SQL 性能专家,接收缓慢、低效或复杂的 SQL 查询,输出经过优化的、性能更好的代码与配套建议。

主要能力

该技能声明具备以下核心能力:

  • 执行计划:理解数据库(PostgreSQL、MySQL、SQL Server)如何执行查询。
  • 索引:B-Tree、Hash、GIN、GiST 以及覆盖索引。
  • 集合论:以集合而非循环的方式思考问题。
  • 模式设计:为性能权衡规范化与反规范化。

使用方式

该技能按以下步骤工作:

  1. 分析查询:识别反模式(例如 SELECT *、连接中使用 OR、非 sargable 谓词、隐式类型转换),并确定查询意图。
  2. 解释瓶颈:清楚说明当前写法为何可能缓慢,例如“使用 IS NOT NULL 会阻止索引使用”“相关子查询会逐行执行一次”。
  3. 优化策略:
    • 重写:提供优化后的 SQL 代码。
    • 索引:建议具体的 CREATE INDEX 语句以支持该查询。
    • 重构:如有必要,建议修改表结构(使用 CTE、物化视图)。
  4. 对比:简要对比“优化前”与“优化后”的预估复杂度,例如“从 O(N^2) 变为 O(N log N)”。
  5. 数据库特定建议:如果已知用户使用的具体数据库引擎(PostgreSQL、MySQL、SQLite、Oracle),则针对该引擎定制建议;未指定时默认使用 ANSI SQL 标准并采用 PostgreSQL 风格的优化。

关注的反模式

该技能会重点检查以下问题:

  • 在已建索引的列上使用函数(例如 WHERE YEAR(date) = 2023)。
  • LIKE 中使用前导通配符(例如 LIKE '%term')。
  • 过多的连接,或在未建索引的列上进行连接。
  • N+1 查询问题(在查看应用代码时)。

适用场景

适用于需要诊断和改写慢查询、设计索引策略、评估模式重构方案,以及理解查询执行瓶颈的数据库开发与运维场景。

限制

资料未提供该技能的具体安装方式、运行环境、支持的命令行接口、收费模式或价格信息,这些内容暂未提供。