# database-performance

Скилл задаёт правила производительности баз данных для .NET: разделяет чтение и запись, устраняет N+1 запросы и требует лимиты на выборки.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 664 установки · ★ 1238
- Автор: Aaronontheweb
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/database-performance/SKILL.md
- Обновлён: 2026-10-11
- HTML: https://affpapa.org/nevibecode/skills/database-performance

## Что делает

Скилл внедряет в ассистента инженерные правила для работы с базами данных через EF Core и Dapper. Он запрещает использовать одну сущность для чтения и записи. Вместо этого агент формирует специализированные DTO под выборки (например, `UserProfile` или `UserSummary`) и строгие команды для модификации данных вроде `CreateUserCommand`.

Архитектура строится на понятных ограничениях. Все операции чтения обязаны иметь лимиты строк через `Take` или `LIMIT`, а объединения данных переносятся в SQL, исключая join-операции в коде приложения. Для EF Core скилл отключает отслеживание изменений с помощью `AsNoTracking()`, потому что change tracking заметно нагружает память на тяжёлых выборках.

У скилла выставлен флаг `user-invocable: false`. Его не вызывают отдельной слэш-командой. Правила активируются автоматически, когда вы просите агента спроектировать слой доступа к данным или ускорить медленные запросы.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill database-performance -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/database-performance/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/database-performance/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill database-performance -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/database-performance/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill database-performance -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/database-performance/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Aaronontheweb/dotnet-skills database-performance
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/database-performance/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill database-performance -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Aaronontheweb/dotnet-skills --path skills/database-performance
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/database-performance/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Aaronontheweb/dotnet-skills --skill database-performance -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/Aaronontheweb/dotnet-skills/tree/HEAD/skills/database-performance/SKILL.md

## Когда брать
- разделить модели чтения и записи по паттерну CQRS
- отключить ресурсоёмкий change tracking в EF Core через AsNoTracking
- устранить проблему N+1 запросов при загрузке связанных данных
- добавить обязательные лимиты строк и курсорную пагинацию в выборки
- перенести связывание таблиц из кода приложения в SQL-запросы

## Примеры запросов агенту
- Спроектируй слой доступа к данным для заказов на EF Core с разделением на чтение и запись.
- Оптимизируй метод выборки пользователей в Dapper и добавь курсорную пагинацию.
- Проверь репозиторий на N+1 запросы и отключи отслеживание изменений там, где оно не нужно.

## Похожие
- [dotnet-backend-patterns](https://affpapa.org/nevibecode/skills/dotnet-backend-patterns.md) — скилл · 19076 установок
- [optimizing-ef-core-queries](https://affpapa.org/nevibecode/skills/optimizing-ef-core-queries.md) — скилл · 5700 установок
- [database-performance-debugging](https://affpapa.org/nevibecode/skills/database-performance-debugging.md) — скилл · 493 установки
- [analyzing-dotnet-performance](https://affpapa.org/nevibecode/skills/analyzing-dotnet-performance.md) — скилл · 4900 установок
- [dotnet-inspect-performance](https://affpapa.org/nevibecode/skills/dotnet-inspect-performance.md) — скилл · 411 установок
- [optimize-database-performance](https://affpapa.org/nevibecode/commands/optimize-database-performance.md) — команда · 794 установки

Из того же набора: [aaronontheweb/dotnet-skills](https://affpapa.org/nevibecode/by/aaronontheweb/dotnet-skills.md) — 34 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
