Install
openclaw skills install @thcjp/sql-queryopenclaw skills install @thcjp/sql-query核心功能: 本技能提供自动化配置和灵活的参数设置、化配置和灵活的参数设置等能力。
核心功能: 本技能提供中文交互、化工作流场景等能力。
核心功能: 本技能提供时使用等能力。
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| SQL查询工具(专业版)队与企业的SQL查询 | 不支持 | 支持 |
| SQL查询工具(专业版)含慢查询采集 | 不支持 | 支持 |
| SQL查询工具(专业版)跨库SQL转换 | 不支持 | 支持 |
| 大数据集流式处理 | 不支持 | 支持 |
| 多数据源关联查询 | 不支持 | 支持 |
| 能力分类 | 免费版 | 专业版 |
|---|---|---|
| 查询结果缓存 | 无 | 内存+磁盘多级缓存 |
| 慢查询采集 | 手动EXPLAIN | 自动采集+告警+调用链 |
| 跨库SQL转换 | 手动速查表 | 自动语法转换引擎 |
| 性能基准测试 | 无 | 压测套件+回归对比 |
| 连接池调优 | 基础连接 | 复用+健康检查+熔断 |
| 读写分离 | 无 | 自动路由只读副本 |
| 优先支持 | 社区 | 工单优先响应 |
自动采集执行时间超过阈值的查询,关联调用链定位来源应用,生成慢查询Top10周报并触发告警.
from sql_query_tool import ProFeatures
# ...
pro = ProFeatures(db)
pro.slow_query_monitor(threshold_ms=200, alert_webhook_env="OPS_WEBHOOK")
# 自动采集 >200ms 的查询,推送到运维告警群
对幂等的聚合查询启用结果缓存,命中即返回,未命中再执行真实查询,命中率可达80%以上,显著降低数据库负载.
pro.enable_cache(
backend="memory+disk",
ttl_seconds=300, # 缓存5分钟
max_entries=10000,
key_strategy="query+params" # 按SQL+参数生成缓存键
)
print(pro.cache.metrics())
# 示例
将一份 数据库 业务SQL自动转换为MySQL与SQL Server语法,覆盖LIMIT、UPSERT、日期函数、JSON操作等差异点.
pg_sql = """
SELECT id, metadata->>'source' AS source, created_at
FROM orders
WHERE created_at >= NOW() - INTERVAL '7 days'
ORDER BY created_at DESC
LIMIT 100
"""
# ...
mysql_sql = pro.translate_sql(pg_sql, from_dialect="数据库", to_dialect="mysql")
# 自动转换为:DATE_SUB(NOW(), INTERVAL 7 DAY)、JSON_UNQUOTE(JSON_EXTRACT(...))
在表结构变更或索引调整后,运行基准测试套件对比前后性能,防止优化一处导致另一处退化.
result = pro.benchmark.run_suite("queries/baseline/")
# 输出:12项查询,10项提升、1项持平、1项退化(需关注)
pro.benchmark.compare(baseline="v1.2", current="v1.3")
对只读查询自动路由到只读副本,写操作走主库,提升整体吞吐.
pro.enable_read_write_split(
master="数据库://master-host:5432/mydb",
replicas=["数据库://replica-1:5432/mydb", "数据库://replica-2:5432/mydb"],
read_ratio=0.8 # 80%读请求分流到副本
)
from sql_query_tool import ProFeatures
# ...
pro = ProFeatures(db)
pro.enable_cache(backend="memory", ttl_seconds=300)
pro.slow_query_monitor(threshold_ms=200)
pro.benchmark.capture_baseline(name="v1.0", query_dir="queries/")
# 将当前查询性能快照保存为基线
translated = pro.translate_sql(source_sql, from_dialect="数据库", to_dialect="mysql")
完整上手时间约120秒.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 否 | 处理的内容输入 |
| mode | string | 否 | 处理模式, 可选值: json/text/markdown |
| style | string | 否 | 输出风格, 参考 references/style.md |
{
"success": true,
"data": {
"result": "处理结果",
"status": "success",
"metadata": {
"metadata": {
"template_used": "reviewer",
"word_count": 0,
"style": "专业"
}
},
"error": null
}
输出模板参考: assets/output.json
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| sqlite3 | CLI工具 | 必需 | 系统自带或官网下载 |
| psql | CLI工具 | 可选 | 数据库 安装包 |
| mysql | CLI工具 | 可选 | MySQL 客户端安装包 |
| sqlcmd | CLI工具 | 可选 | SQL Server 工具包 |
| Python | 运行时 | 必需 | python.org 官方下载 |
| redis | Python包 | 可选 | pip install redis(分布式缓存) |
| psycopg2 | Python包 | 可选 | pip install psycopg2(数据库驱动) |
输入:
{
"content": "示例数据",
"content": "示例数据",
"style": "示例数据"
}
输出:
示例数据
输入:
{
"content": "示例数据"
}
输出:
示例数据
A:(1) 检查缓存键是否包含过多变化参数,导致键爆炸;(2) 评估查询是否真的幂等,非幂等查询不应缓存;(3) 调大TTL或预热高频查询.
A:这是典型的高频慢查询。先通过pro.slow_query_report查看调用链定位来源应用,再针对性优化:补建索引、改写SQL、或对结果启用缓存.
A:不同数据库JSON函数差异较大。数据库用->>、@>,MySQL用JSON_EXTRACT、JSON_CONTAINS,SQL Server用JSON_VALUE。专业版转换引擎覆盖常见场景,复杂嵌套JSON建议人工适配.
A:(1) 测试前执行ANALYZE更新统计信息;(2) 预热数据到缓存;(3) 关闭其他并发进程;(4) 每个查询跑3次取中位数;(5) 排除首次冷启动结果.
A:命中率低于90%通常是连接数不足,建议提高max_connections;等待数持续大于0说明并发过高,考虑读写分离或引入缓存层.
A:只读副本存在复制延迟。对"写后立即读"场景使用pro.route_to_master()强制走主库,或配置read_your_writes=True让框架自动判断.
A:按业务模块拆分查询文件,每个文件包含3-5个代表性查询。建议:热查询(高频)、冷查询(低频)、复杂查询(多表JOIN)、边界查询(空表/大表).
A:不支持。存储过程与数据库方言深度绑定,无法自动转换。专业版仅覆盖标准SQL语法差异,存储过程需人工重写.
A:专业版支持表事件驱动的缓存失效。当某表发生INSERT/UPDATE/DELETE时,自动失效依赖该表的所有缓存条目,可通过pro.cache.register_dependency注册依赖关系.
A:数据库 9.6+、MySQL 5.7+、SQL Server 2016+、SQLite 3.35+。对更低版本仅保证基础查询能力,高级特性可能不可用.
| 错误场景(续) | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 请求重试;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 缓存未命中 | 缓存配置错误或数据未更新 | 检查缓存配置,确认数据更新策略 | 修正缓存配置,确保数据更新策略正确 |
| 慢查询采集失败 | 数据库权限不足或采集规则错误 | 确认数据库权限,检查采集规则配置 | 修复数据库权限,调整采集规则 |
| 跨库SQL转换错误 | 转换规则不支持特定SQL语法 | 检查转换规则,确认SQL语法支持情况 | 修改转换规则或手动调整SQL语法 |
| 性能基准测试结果异常 | 测试环境配置错误或数据不一致 | 检查测试环境配置,对比测试数据 | 修正测试环境配置,确保数据一致性 |
| 读写分离路由错误 | 配置错误或数据库连接问题 | 检查配置文件,确认数据库连接 | 修正配置文件,确保数据库连接正常 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| 数据泄露 | 高 | 使用SSL加密数据库连接 | 检查SSL证书有效性,确保连接加密 |
| SQL注入攻击 | 高 | 对所有输入进行验证和转义 | 使用预编译语句,避免直接拼接SQL |
| 权限滥用 | 中 | 严格权限控制,定期审计 | 检查用户权限,定期进行安全审计 |
| 缓存失效攻击 | 中 | 设置合理的缓存过期时间,监控缓存命中率 | 监控缓存命中率,及时调整过期时间 |
| 数据库连接泄露 | 低 | 使用连接池,限制连接数量 | 检查连接池配置,限制连接数量 |
| 网络攻击 | 低 | 使用防火墙和入侵检测系统 | 配置防火墙规则,启用入侵检测系统 |
| 场景 | 效率提升量化分析 | 差异化对比 |
|---|---|---|
| 查询结果缓存 | 缓存命中率80%,减少数据库访问50% | 相比无缓存,查询响应时间减少50% |
| 慢查询治理 | 自动发现慢查询95%,减少人工排查时间80% | 相比手动排查,效率提升80% |
| 跨库SQL转换 | 自动转换成功率90%,减少人工转换时间70% | 相比手动转换,效率提升70% |
| 性能基准测试 | 自动测试覆盖率100%,减少人工测试时间60% | 相比手动测试,效率提升60% |
| 读写分离路由 | 提升查询吞吐量30%,减少数据库负载 | 相比无读写分离,吞吐量提升30% |
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | SQL查询工具(专业版) | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 面向团队与企业的SQL查询专业版,含慢查询采集、结果缓存、跨库SQL转换、性能基 | 通用场景 | 通用场景 |