Skip to content
Development
Command

/prisma-optimize

Optimize Prisma queries with automated analysis, N+1 detection, index recommendations, and performance patterns based on official documentation

From plugin
fusengine-agents
2233 skills43 agents33 commands
Install
$ npx -y skills add fusengine/agents --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/prisma-optimize

Context preview

What this command does when you run it.

Optimize Prisma queries with automated analysis, N+1 detection, index recommendations, and performance patterns based on official documentation

Command definition

prisma-optimize.md
description: Optimize Prisma queries with automated analysis, N+1 detection, index recommendations, and performance patterns based on official documentation

๐Ÿš€ Prisma Query Optimization

Automatically analyzes and optimizes your Prisma queries by detecting performance issues, N+1 queries, missing indexes, and proposing solutions based on official Prisma documentation 2024-2025.

---

Phase 1: ANALYZE ๐Ÿ”

Step 1.1: Fetch Official Documentation

> Use research-expert to fetch official Prisma documentation

**Goals**:

  • Obtain latest Prisma optimization documentation
  • Verify recommended patterns for Prisma Optimize
  • Identify best practices 2024-2025

**Actions**:

  • Search for Prisma Optimize, Query Optimization, Performance documentation
  • Verify `@prisma/extension-optimize` extension APIs
  • Confirm patterns to avoid N+1 queries

**Query Focus**:

"Prisma Optimize best practices, N+1 detection, query optimization patterns,
index recommendations, select vs include, relationLoadStrategy"

**Deliverable**: Prisma optimization guide with verified methods

---

Step 1.2: Explore Prisma Codebase

> Use explore-codebase to analyze existing Prisma setup

**Goals**:

  • Locate Prisma files (schema.prisma, client queries)
  • Identify existing query patterns
  • Detect potential performance issues

**Actions**:

  • Search for `schema.prisma`, `*.prisma` files
  • Analyze files containing `prisma.` to find queries
  • Map relations and data access patterns

**Deliverable**: Map of Prisma queries and potential issues

---

Phase 2: DETECT ISSUES ๐ŸŽฏ

Automated Problem Detection

After exploration, systematically analyze:

๐Ÿšจ Issue 1: N+1 Queries

**Detected Pattern**:

// โŒ Anti-pattern detected
const users = await prisma.user.findMany()
users.forEach(async (user) => {
  const posts = await prisma.post.findMany({ where: { authorId: user.id } })
})

**Recommended Solutions**:

1. **`include`** (Simple):

   const users = await prisma.user.findMany({ include: { posts: true } })

2. **`relationLoadStrategy: "join"`** (Performant):

   const users = await prisma.user.findMany({
     relationLoadStrategy: "join",
     include: { posts: true }
   })

---

๐Ÿšจ Issue 2: Missing Indexes

**Detected Pattern**:

// โŒ Queries on unindexed columns
await prisma.user.findFirst({ where: { name: "Marc" } })

**Solution**:

model User {
  id    Int    @id
  name  String

  @@index([name]) // โœ… Add index
}

---

๐Ÿšจ Issue 3: Overfetching

**Detected Pattern**:

// โŒ Fetches all fields unnecessarily
await prisma.user.findMany({ include: { posts: true } })

**Solution**:

// โœ… Select only necessary fields
await prisma.user.findMany({
  select: {
    id: true,
    email: true,
    posts: { select: { title: true } }
  }
})

---

Phase 3: EXECUTE ๐Ÿ› ๏ธ

Step 3.1: Install Prisma Optimize (Optional)

**If desired, install official extension**:

npm install @prisma/extension-optimize

**Configuration**:

import { PrismaClient } from '@prisma/client'
import { withOptimize } from '@prisma/extension-optimize'

const prisma = new PrismaClient().$extends(
  withOptimize({ apiKey: process.env.OPTIMIZE_API_KEY })
)

---

Step 3.2: Apply Optimizations

For each detected issue, propose and implement solutions:

1. **Refactor N+1 queries** โ†’ Use `include` or `relationLoadStrategy` 2. **Add missing indexes** โ†’ Modify `schema.prisma` with `@@index` 3. **Optimize selects** โ†’ Replace with targeted `select` 4. **Limit results** โ†’ Add `take`/`skip`

---

Phase 4: VERIFY ๐Ÿ”

> Use sniper to ensure zero linter errors

**Goals**:

  • Validate TypeScript syntax
  • Verify Prisma types
  • Ensure SOLID principles compliance

**Actions**:

npx prisma validate
npx prisma format
npm run lint
npm run type-check

**Deliverable**: Optimized code with zero errors

---

๐Ÿ“Š Final Report

Generate structured report with:

# Prisma Optimization Report

## ๐Ÿ” Detected Issues
- [X] N+1 Queries: 3 occurrences
- [X] Missing Indexes: 5 columns
- [X] Overfetching: 2 queries

## โœ… Applied Solutions
1. Refactored users.service.ts with `include`
2. Added indexes on User.name, Post.title
3. Optimized queries with targeted `select`

## ๐Ÿ“ˆ Estimated Performance Gains
- Reduced 15 โ†’ 3 SQL queries
- Queries ~70% faster (estimated)
- Network load reduced by ~40%

## ๐ŸŽฏ Additional Recommendations
- Enable Prisma Optimize for monitoring
- Add performance logs in development
- Consider caching with Accelerate

---

Usage

**Arguments**: No arguments required

**Example Usage**:

  • `/prisma-optimize` โ†’ Complete analysis and automatic optimization

**Notes**:

  • Command analyzes ALL Prisma files in the project
  • Recommendations based on official 2024-2025 documentation
  • Installing `@prisma/extension-optimize` is optional but recommended
Read more
Ships withfusengine-agents

A plugin ecosystem that turns Claude Code into a supervised, multi-agent development environment.

Get the whole plugin, auto-invoked