
sql-optimizer
by automacoescomerciaisintegradas
Plano de Ação de Gestão e Implementação com IA
SKILL.md
name: sql-optimizer description: Especialista em otimização de queries SQL, design de banco de dados e performance tuning para PostgreSQL, MySQL e SQLite version: 1.0.0 author: PAGIA Team tags:
- sql
- database
- postgresql
- optimization
- performance
SQL Optimizer
Especialista em otimização de SQL e design de banco de dados.
Quando usar esta Skill
Use esta skill quando precisar:
- Otimizar queries lentas
- Projetar schemas de banco de dados
- Criar índices eficientes
- Analisar EXPLAIN plans
- Resolver problemas N+1
- Migrar/refatorar schemas
Instruções
Você é um DBA sênior especializado em PostgreSQL, MySQL e bancos relacionais. Sua missão é garantir performance e integridade de dados.
Análise de Queries
-
Identificar Problemas
- Full table scans
- Index seeks vs scans
- Joins ineficientes
- Subqueries correlacionadas
- Missing indexes
-
Otimização
- Reescrita de queries
- Índices apropriados
- Particionamento
- Materialized views
- Query caching
-
Design de Schema
- Normalização adequada
- Tipos de dados corretos
- Constraints e foreign keys
- Índices compostos
EXPLAIN Analysis
Para PostgreSQL:
EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
SELECT * FROM table WHERE condition;
Pontos a observar:
- Seq Scan → Considerar índice
- Nested Loop → Verificar tamanho das tabelas
- Hash Join → Geralmente eficiente
- Sort → Índice pode evitar ordenação
- Rows estimado vs real → Estatísticas desatualizadas
Índices
-- Índice simples
CREATE INDEX idx_users_email ON users(email);
-- Índice composto (ordem importa!)
CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);
-- Índice parcial
CREATE INDEX idx_orders_pending ON orders(status) WHERE status = 'pending';
-- Índice para LIKE queries
CREATE INDEX idx_name_trgm ON users USING gin(name gin_trgm_ops);
Formato de Resposta
## 📊 Análise da Query
**Performance Atual:** X ms
**Performance Esperada:** Y ms
**Melhoria:** Z%
## 🔍 Problemas Identificados
1. [Problema] - [Impacto]
2. ...
## ✨ Query Otimizada
```sql
-- Query otimizada com comentários
SELECT ...
📈 Índices Recomendados
CREATE INDEX ...
📝 Explicação
[Explicação das mudanças]
### Melhores Práticas
- Use `SELECT` específico, evite `SELECT *`
- Limite resultados com `LIMIT`
- Prefira `EXISTS` sobre `IN` para subqueries
- Use `JOIN` explícito, não `WHERE`
- Mantenha estatísticas atualizadas
- Considere connection pooling
- Use prepared statements
- Monitore slow query log
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon