SQL Optimization Patterns
ynulihao/AgentSkillOS
Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries.
Analyzes SQL queries for missing indexes, N+1 patterns, suboptimal joins, and full table scans.
$ npx skills add Mathews-Tom/armory --skill sql-optimizer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Mathews-Tom/armory sql-optimizer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/sql-optimizer .claude/skills/sql-optimizer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sql-optimizer" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/sql-optimizer into .claude/skills/sql-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sql-optimizer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Mathews-Tom/armory/tree/main/skills/sql-optimizerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Mathews-Tom/armory --skill sql-optimizer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Mathews-Tom/armory sql-optimizer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/sql-optimizer .agents/skills/sql-optimizer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sql-optimizer" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/sql-optimizer into .agents/skills/sql-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sql-optimizer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mathews-Tom/armory --skill sql-optimizer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Mathews-Tom/armory sql-optimizer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/sql-optimizer .cursor/skills/sql-optimizer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sql-optimizer" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/sql-optimizer into .cursor/skills/sql-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sql-optimizer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Mathews-Tom/armory.git --path skills/sql-optimizer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Mathews-Tom/armory --skill sql-optimizer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Mathews-Tom/armory sql-optimizer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/sql-optimizer .gemini/skills/sql-optimizer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sql-optimizer" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/sql-optimizer into .gemini/skills/sql-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sql-optimizer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Mathews-Tom/armory sql-optimizerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Mathews-Tom/armory --skill sql-optimizer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/sql-optimizer .github/skills/sql-optimizer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sql-optimizer" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/sql-optimizer into .github/skills/sql-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sql-optimizer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Mathews-Tom/armory --skill sql-optimizer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Mathews-Tom/armory sql-optimizer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Mathews-Tom/armory.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/sql-optimizer .opencode/skills/sql-optimizer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sql-optimizer" agent skill from https://github.com/Mathews-Tom/armory/tree/main/skills/sql-optimizer into .opencode/skills/sql-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sql-optimizer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sql-optimizerAnalyzes SQL queries for missing indexes, N+1 patterns, suboptimal joins, and full table scans.
SQL Optimizer is an agent skill from Mathews-Tom/armory. Analyzes SQL queries for missing indexes, N+1 patterns, suboptimal joins, and full table scans. Interprets EXPLAIN, detects anti-patterns, rewrites queries. Triggers on: "optimize this query", "slow query", "add indexes", "explain plan", "N+1 query", "why is this query slow".
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `evals/cases.yaml`, `references/anti-patterns.md` and `references/explain-guide.md`).
It sits in Databases, covering SQL and Query optimization. It works with SQL. The repository describes itself as: Curated, production-grade skills for AI coding agents. Battle-tested workflows for developers who use AI seriously. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4594fb7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are mardkown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
SQL Optimizer loads about 2.3k tokens when it runs, and up to ~7.6k if it reads all its reference files. Until then it costs about 73 tokens; SKILL.md has 786 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Mathews-Tom/armory at commit 4594fb7, republished under its MIT licence (© Mathews-Tom). 786 words, ~2,296 tokens.
.claude/skills/sql-optimizer/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Systematic SQL performance analysis: parse query structure, interpret EXPLAIN plans, detect anti-patterns (N+1, full scans, cartesian joins), recommend indexes, and rewrite queries — with explanations of WHY each change improves performance, not just WHAT changed.
| File | Contents | Load When |
|---|---|---|
references/anti-patterns.md | Common SQL anti-patterns with detection rules and fixes | Always |
references/index-strategies.md | Index type selection, composite index ordering, covering indexes | Index recommendations needed |
references/explain-guide.md | Reading EXPLAIN output for PostgreSQL, MySQL, SQLite | EXPLAIN plan provided |
references/join-optimization.md | Join type selection, join order optimization, subquery-to-join conversion | Query contains joins or subqueries |
Parse the SQL to understand its structure:
SELECT * — fetching unnecessary columnsOR in WHERE — often prevents index useIf an EXPLAIN plan is provided:
ANALYZE).Check for known performance anti-patterns (see references/anti-patterns.md):
| Pattern | Detection | Impact |
|---|---|---|
| SELECT * | Star in select list | Transfers unnecessary data |
| N+1 queries | Loop with query inside | N additional roundtrips |
| Function on indexed column | WHERE UPPER(name) = 'X' | Index bypass |
| Implicit type cast | String compared to integer | Index bypass |
| Missing join condition | Cartesian product | Exponential rows |
| LIKE '%prefix' | Leading wildcard | Full scan |
| OR with different columns | WHERE a=1 OR b=2 | Index bypass |
| SELECT DISTINCT as band-aid | Hides duplicate-producing join | Fix the join instead |
IN (SELECT...)
with EXISTS, use CTEs for readability without performance cost (PostgreSQL 12+
may inline CTEs).Present the original query, detected issues, recommended indexes, rewritten query, and explanation of each change.
## SQL Optimization Analysis
### Original Query
```sql
{original SQL}
```
### Issues Detected
| # | Issue | Severity | Location | Impact |
| --- | ------- | ----------------- | ------------------- | ---------------- |
| 1 | {issue} | {High/Medium/Low} | {WHERE/JOIN/SELECT} | {what it causes} |
### EXPLAIN Interpretation
{If EXPLAIN provided}
- **Bottleneck:** {node type} on `{table}` (cost: {N})
- **Rows scanned:** {N} (estimated {M})
- **Index used:** {name or "None"}
- **Key insight:** {what this reveals}
### Recommended Indexes
```sql
-- {Reason for this index}
CREATE INDEX {name} ON {table}({columns});
```
### Optimized Query
```sql
{rewritten query}
```
### Change Explanation
1. **{Change}** — {Why this improves performance. Include estimated impact.}
### Expected Improvement
- Scan type: {before} → {after}
- Estimated rows scanned: {before} → {after}
- Index usage: {before} → {after}
| Mode | Input | Depth | When to Use |
|---|---|---|---|
quick | Single query | Anti-pattern scan + index suggestion | Fast feedback during development |
standard | Query + schema | Full analysis with rewrites | Default for optimization requests |
deep | Query + EXPLAIN + schema + row counts | Full analysis with statistics validation | Production performance investigation |
users.email" is incomplete.
"Add an index on users.email because the WHERE clause filters by email, currently
causing a sequential scan of 1M rows" is actionable.| Problem | Resolution |
|---|---|
| No EXPLAIN output provided | Analyze query structure and anti-patterns. Note that recommendations are best-effort without EXPLAIN. |
| Unknown database engine | Ask which engine. Default anti-pattern analysis applies to all engines. |
| Query uses ORM-generated SQL | Optimize the SQL, then suggest ORM-level changes (e.g., select_related in Django, eager loading). |
| Schema not provided | Infer table structure from the query. Note assumptions. |
| Query is already optimal | State that no significant improvements are possible. Suggest non-query optimizations (caching, denormalization). |
| Complex multi-CTE query | Analyze each CTE independently, then analyze the composition. |
Push back if:
© Mathews-Tom, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in skills/sql-optimizer of Mathews-Tom/armory.
Open the folder on GitHubat commit 4594fb7
SQL Optimizer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| SQL Optimizer this skillMathews-Tom/armory | 327 | — | ~2.3k | Automated safety check: Pass | MIT | |
| SQL Optimization Patternsynulihao/AgentSkillOS | 617 | 10 repos | ~3.3k | Automated safety check: Pass | None | |
| Query Engine Designrevfactory/claude-code-harness | 120 | — | ~474 | Automated safety check: Pass | None | |
| SQL Optimization Patternssickn33/agentic-awesome-skills | 47k | 1 repos | ~566 | Automated safety check: Pass | MIT | |
| SQL Database Assistantborghei/Claude-Skills | 874 | — | ~1.5k | Automated safety check: Pass | MIT | |
| SQL Optimization InterviewerPrepLabsAI/InterviewMentor | 112 | — | ~2.1k | Automated safety check: Pass | MIT |
ynulihao/AgentSkillOS
Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries.
revfactory/claude-code-harness
SQL query engine design and implementation guide. An agent skill from revfactory/claude-code-harness.
sickn33/agentic-awesome-skills
Diagnose slow SQL with query plans, preserve query results, and verify indexing or query changes against representative data.
borghei/Claude-Skills
This skill should be used when the user asks to "optimize SQL queries", "explore database schemas", "generate migration SQL", "analyze query performance", or "document database structure".
PrepLabsAI/InterviewMentor
A Data Engineering interviewer focused on database performance.
rileyhilliard/claude-essentials
Staff+ DBA SQL patterns targeting what Claude's defaults miss - multi-column statistics, operator classes, keyset pagination, silent performance anti-patterns.
Mathews-Tom/armory
Architecture reviews across 7 dimensions (structural, scalability, enterprise readiness, performance, security, ops, data) with scored reports.
Mathews-Tom/armory
Turn concepts into static HTML visuals exported as PNG or SVG files via HTML/CSS/SVG.
Mathews-Tom/armory
A skill your agent uses when analyzing an existing video URL or local recording: "watch this video", "analyze youtube video", "summarize this video", "youtube transcript", "find this moment", "what…
Mathews-Tom/armory
Deep code simplification and refactoring preserving behavior across Python, Go, TypeScript, Rust.
Mathews-Tom/armory
Turn concepts into animated explainer videos using Manim (Python) with MP4/GIF output, audio overlay, multi-scene composition.
Mathews-Tom/armory
Maps the unresolved architecture, policy, and scope decisions that must be answered before planning can start: one durable decision ticket per question on the issue tracker, typed and blocker-linked…
Works with
Categories
Analyzes SQL queries for missing indexes, N+1 patterns, suboptimal joins, and full table scans. SQL Optimizer is an agent skill from Mathews-Tom/armory. Analyzes SQL queries for missing indexes, N+1 patterns, suboptimal joins, and full table scans.
SQL Optimizer fits situations like: : optimize this query; why is this query slow.
Run `npx skills add Mathews-Tom/armory --skill sql-optimizer -a claude-code`. Or copy the skill folder (skills/sql-optimizer in Mathews-Tom/armory) into .claude/skills/sql-optimizer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Mathews-Tom/armory --skill sql-optimizer -a codex`. Or copy the skill folder (skills/sql-optimizer in Mathews-Tom/armory) into .agents/skills/sql-optimizer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mathews-Tom/armory --skill sql-optimizer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sql-optimizer, .gemini/skills/sql-optimizer, .github/skills/sql-optimizer and .opencode/skills/sql-optimizer in your project.
SKILL.md names no scripts, command-line tools or credentials: SQL Optimizer is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
SQL Optimizer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with SQL Optimizer: SQL Optimization Patterns (ynulihao/AgentSkillOS, 617 stars), Query Engine Design (revfactory/claude-code-harness, 120 stars), SQL Optimization Patterns (sickn33/agentic-awesome-skills, 47k stars) and SQL Database Assistant (borghei/Claude-Skills, 874 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Mathews-Tom (a GitHub user) maintains it in Mathews-Tom/armory, which has 327 GitHub stars. The repository holds 80 skills in this directory. The repository was last updated on October 6, 2026.
Source: Mathews-Tom/armory on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.