Sql query review
Skill openagentskills/betterskills/skills/data/sql-query-review
Portable, open catalogue of agent skills for Cursor, Claude Code, Windsurf, Copilot, and other AI coding assistants.
npx -y skills add openagentskills/betterskills --skill sql-query-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Reviews and improves SQL queries for readability and performance using a structured checklist. Use when users ask to optimize a query, review query performance, explain a slow query, or interpret an execution plan.
SKILL.md
2.2 KB, 493 tokens by cl100k_base, as published. Nobody here has run it
SQL Query Review
Quick start
- Clarify database engine and table sizes if available.
- Read the query for intent, filters, joins, and aggregation logic.
- Apply the checklist to spot correctness and performance risks.
- Propose a rewrite and explain expected trade-offs.
Review checklist
- Intent match — Query output matches the stated business question.
- Correctness — Joins, predicates, grouping, and null handling are valid.
- Readability — Clear aliases, explicit columns, and logical clause order.
- Index usage — Filters and joins are sargable and can use useful indexes.
- N+1 patterns — Repeated per-row queries are replaced with set-based SQL.
- Plan interpretation — Flag full scans, bad cardinality estimates, and expensive sorts.
Suggested rewrite format
## Review summary
- Engine/context:
- Main concerns:
## Suggested rewrite
```sql
-- rewritten query
```
## Why this is better
1. Correctness:
2. Performance:
3. Readability:
## Index suggestions
- `CREATE INDEX ...` (if applicable)
## Explain-plan notes (conceptual)
- Expected operators before:
- Expected operators after:
- What to verify with EXPLAIN/ANALYZE:
Example (before/after commentary)
Before
SELECT *
FROM orders o
JOIN customers c ON c.id = o.customer_id
WHERE DATE(o.created_at) = '2026-01-01'
AND c.region = 'EMEA';
After
SELECT
o.id,
o.customer_id,
o.total_amount,
o.created_at,
c.name,
c.region
FROM orders o
JOIN customers c ON c.id = o.customer_id
WHERE o.created_at >= '2026-01-01'
AND o.created_at < '2026-01-02'
AND c.region = 'EMEA';
Commentary
- Replaced
SELECT *with explicit columns for clarity and reduced transfer. - Rewrote
DATE(o.created_at)to a range predicate so indexes oncreated_atremain usable. - Kept business logic unchanged while making plan behavior easier to reason about.
What ships with it: 1 file
356 B alongside SKILL.md
- skill.manifest.yaml356 B