SQL Server Skills
Comprehensive SQL Server skill for AI agents. Covers performance diagnostics, index analysis, execution plan interpretation, query optimization, schema management, backup/restore, and monitoring — all via sqlcmd and T-SQL DMVs.
Requirements
- -
sqlcmd — Microsoft Download - SQL Server 2016+ — All DMV queries target compatibility level 130+
- Permissions —
VIEW SERVER STATE for most DMV queries; sysadmin or db_owner for some operations
Quick Connect
CODEBLOCK0
Skill Organization
| Sub-Skill | Path | Use When |
|---|
| Diagnostics | INLINECODE5 | Server is slow — find the bottleneck (wait stats, slow queries, active requests) |
| Indexes |
sqlserver-indexes/SKILL.md | Find missing indexes, fix fragmentation, drop unused indexes |
|
Execution Plans |
sqlserver-execution-plans/SKILL.md | Read and interpret query execution plans, spot bad operators |
|
Query Optimization |
sqlserver-query-optimization/SKILL.md | Fix stored procedures, views, anti-patterns, parameter sniffing |
|
Schema |
sqlserver-schema/SKILL.md | CREATE/ALTER TABLE, migrations, constraints, data types |
|
Backup/Restore |
sqlserver-backup/SKILL.md | BACKUP DATABASE, RESTORE, check backup history |
|
Monitoring |
sqlserver-monitoring/SKILL.md | SQL Agent jobs, error log, blocking, deadlocks, long-running transactions |
Decision Tree — What Are You Trying To Do?
CODEBLOCK1
Common Workflows
Workflow 1: Server Is Slow — Start Here
CODEBLOCK2
Then read sqlserver-diagnostics/SKILL.md to interpret results.
Workflow 2: Optimize a Specific Query
CODEBLOCK3
Then read sqlserver-execution-plans/SKILL.md to interpret the plan.
Workflow 3: Monthly Index Maintenance
CODEBLOCK4
See sqlserver-indexes/SKILL.md for interpretation and the rebuild/reorganize decision.
Workflow 4: Investigate Blocking
CODEBLOCK5
See sqlserver-monitoring/SKILL.md for deadlock investigation and KILL guidance.
Sub-Skill Quick Reference
- -
sqlserver-diagnostics/SKILL.md — DMV-based bottleneck analysis (most important starting point) sqlserver-indexes/SKILL.md — Full index lifecycle: find, fix, maintain, dropsqlserver-execution-plans/SKILL.md — Read plans, spot table scans, fix key lookupssqlserver-query-optimization/SKILL.md — Stored proc rewrites, anti-patterns, hintssqlserver-schema/SKILL.md — DDL patterns, migrations, data type guidancesqlserver-backup/SKILL.md — Backup/restore commands and history queriessqlserver-monitoring/SKILL.md — Jobs, error log, blocking, deadlocks
SQL Server 技能
面向AI代理的全面SQL Server技能。涵盖性能诊断、索引分析、执行计划解读、查询优化、架构管理、备份/恢复和监控——全部通过sqlcmd和T-SQL DMV实现。
要求
- - sqlcmd — 微软下载
- SQL Server 2016+ — 所有DMV查询目标兼容级别130+
- 权限 — 大多数DMV查询需要VIEW SERVER STATE;部分操作需要sysadmin或dbowner
快速连接
bash
Windows身份验证(已加入域的机器)
sqlcmd -S $SQL_SERVER -E
SQL身份验证
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL
PASSWORD -d $SQLDATABASE
命名实例 + 特定数据库
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL
PASSWORD -d $SQLDATABASE
运行诊断脚本
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL_PASSWORD -d master -i scripts/top-slow-queries.sql
运行并输出到文件
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL_PASSWORD -d master -i scripts/wait-stats.sql -o results.txt -s , -W
技能组织
| 子技能 | 路径 | 使用场景 |
|---|
| 诊断 | sqlserver-diagnostics/SKILL.md | 服务器缓慢——查找瓶颈(等待统计、慢查询、活动请求) |
| 索引 |
sqlserver-indexes/SKILL.md | 查找缺失索引、修复碎片、删除未使用索引 |
|
执行计划 | sqlserver-execution-plans/SKILL.md | 读取和解读查询执行计划,发现不良运算符 |
|
查询优化 | sqlserver-query-optimization/SKILL.md | 修复存储过程、视图、反模式、参数嗅探 |
|
架构 | sqlserver-schema/SKILL.md | CREATE/ALTER TABLE、迁移、约束、数据类型 |
|
备份/恢复 | sqlserver-backup/SKILL.md | BACKUP DATABASE、RESTORE、检查备份历史 |
|
监控 | sqlserver-monitoring/SKILL.md | SQL代理作业、错误日志、阻塞、死锁、长时间运行的事务 |
决策树——您想做什么?
服务器缓慢或查询超时?
├── 我不知道瓶颈在哪里 → sqlserver-diagnostics
│ └── 从wait-stats.sql开始,然后运行top-slow-queries.sql
│
├── 我有一个特定的慢查询 → sqlserver-execution-plans
│ └── 捕获执行计划,识别不良运算符
│
├── 我怀疑索引缺失或损坏 → sqlserver-indexes
│ └── 运行missing-indexes.sql + index-fragmentation.sql
│
└── 我想重写/修复不良T-SQL代码 → sqlserver-query-optimization
└── 检查反模式:游标、非SARGable、DELETE+INSERT循环
是否存在阻塞/锁定问题?
└── sqlserver-monitoring (blocking-analysis.sql)
是否需要更改架构?
└── sqlserver-schema
是否需要备份或恢复数据库?
└── sqlserver-backup
是否需要检查SQL代理作业或错误日志?
└── sqlserver-monitoring
常见工作流程
工作流程1:服务器缓慢——从这里开始
bash
步骤1:SQL Server在等待什么?
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL_PASSWORD -d master -i scripts/wait-stats.sql
步骤2:哪些查询消耗最多资源?
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL_PASSWORD -d master -i scripts/top-slow-queries.sql
步骤3:当前正在运行什么?
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL_PASSWORD -d master -i scripts/active-queries.sql
然后阅读sqlserver-diagnostics/SKILL.md来解读结果。
工作流程2:优化特定查询
sql
-- 步骤1:捕获I/O和时间统计
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
GO
-- 在此粘贴您的查询
GO
-- 步骤2:获取XML执行计划
SET STATISTICS XML ON;
GO
-- 在此粘贴您的查询
GO
SET STATISTICS XML OFF;
然后阅读sqlserver-execution-plans/SKILL.md来解读执行计划。
工作流程3:月度索引维护
bash
查找缺失索引(按影响分数排序)
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL
PASSWORD -d $SQLDATABASE -i scripts/missing-indexes.sql
检查碎片
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL
PASSWORD -d $SQLDATABASE -i scripts/index-fragmentation.sql
查找产生写入开销的未使用索引
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL
PASSWORD -d $SQLDATABASE -i scripts/unused-indexes.sql
参见sqlserver-indexes/SKILL.md了解解读方法以及重建/重新组织的决策。
工作流程4:调查阻塞
bash
运行阻塞分析
sqlcmd -S $SQL
SERVER -U $SQLUSER -P $SQL_PASSWORD -d master -i scripts/blocking-analysis.sql
参见sqlserver-monitoring/SKILL.md了解死锁调查和KILL指导。
子技能快速参考
- - sqlserver-diagnostics/SKILL.md — 基于DMV的瓶颈分析(最重要的起点)
- sqlserver-indexes/SKILL.md — 完整索引生命周期:查找、修复、维护、删除
- sqlserver-execution-plans/SKILL.md — 读取执行计划,发现表扫描,修复键查找
- sqlserver-query-optimization/SKILL.md — 存储过程重写、反模式、提示
- sqlserver-schema/SKILL.md — DDL模式、迁移、数据类型指导
- sqlserver-backup/SKILL.md — 备份/恢复命令和历史查询
- sqlserver-monitoring/SKILL.md — 作业、错误日志、阻塞、死锁