Performance Studio CLI
Анализатор планов выполнения SQL Server: 30 правил, недостающие индексы и MCP-сервер, чтобы агент разбирал планы сам
- 250 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Для фактического плана инструмент выполняет ваш запрос на сервере SQL Server, а вызов с `--query` может запустить любой текст запроса
- Инструмент принимает логин и пароль сервера через флаги, файл `.env` или хранилище ОС и передает их драйверу подключения
- Встроенный MCP-сервер отдает агенту планы и данные Query Store, пока включен в настройках
Установка
- Работает в
Ручная установка
dotnet tool install -g PerformanceStudio.CliНужен .NET 10 runtime. Проверка установки: planview analyze --help.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Для фактического плана инструмент выполняет ваш запрос на сервере SQL Server, а вызов с `--query` может запустить любой текст запроса
- Инструмент принимает логин и пароль сервера через флаги, файл `.env` или хранилище ОС и передает их драйверу подключения
- Встроенный MCP-сервер отдает агенту планы и данные Query Store, пока включен в настройках
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Performance Studio разбирает планы выполнения SQL Server и находит в них причины медленных запросов. Консольная команда `planview` читает файл `.sqlplan` из SSMS или Azure Data Studio, а при подключении к серверу сама снимает план и анализирует его. Результат выходит как JSON с деревом операторов или как текстовый отчет с предупреждениями уровней Info, Warning и Critical и готовыми командами `CREATE INDEX` для недостающих индексов. Набор из 30 правил ловит сбросы хэша и сортировки в `tempdb`, перекос параллелизма, поиск по ключу и RID, поздние фильтры, чувствительность к параметрам, скалярные функции и неявные преобразования типов. Режим пакетной обработки берет папку с `.sql` файлами и для каждого запроса сохраняет план, JSON и текстовый отчет. Команда `planview query-store` выбирает самые тяжелые запросы по CPU, времени или чтениям из Query Store. В комплекте идут настольное приложение на Avalonia для Windows, macOS и Linux и расширение для SSMS 21 и 22. Приложение показывает план графически, сравнивает два плана и умеет собрать скрипт для воспроизведения запроса. Встроенный MCP-сервер дает Claude Code или Cursor 13 инструментов для анализа загруженных планов.
Для кого. Для администраторов баз данных и разработчиков на SQL Server, которые хотят получать разбор плана из терминала, CI или от агента без ручного обхода SSMS.
Подходит, если
- Нужно быстро понять по сохраненному `.sqlplan`, почему запрос стал медленным: где он сбрасывает данные в `tempdb` или читает лишние строки
- Нужно в конвейере CI прогонять папку запросов через `planview` и сохранять JSON с предупреждениями для сравнения между сборками
- Нужно, чтобы Claude Code проанализировал открытые в приложении планы и предложил индексы через встроенный MCP-сервер
- Нужно сравнить два плана одного запроса до и после правки и увидеть, какие показатели ухудшились
- Нужно быстро найти самые тяжелые запросы в Query Store по CPU, длительности или числу чтений
Не подходит, если
- Нужна другая СУБД, например PostgreSQL или MySQL: инструмент читает только планы SQL Server
- Нужен общий доступ агента к данным и произвольным SQL-запросам: для этого подойдет MCP-сервер базы, а здесь Query Store читается встроенным запросом без произвольного SQL
- Запрос нельзя выполнять на боевом сервере, а вам нужен фактический план: для такого плана запрос реально запускается, безопаснее оценочный режим с флагом `--estimated`
- Нужно хранить пароли в системном хранилище на Linux: команда `planview credential` там завершается ошибкой
Пример запроса к агенту
Разбери план `slow-query.sqlplan`: покажи критические предупреждения, самые дорогие операторы и какие индексы стоит создатьОграничения
Для CLI нужен .NET 10 runtime, для сборки исходников .NET 10 SDK. Готовые настольные сборки самодостаточны. Начать можно с файла `.sqlplan` без доступа к базе. При живом захвате фактического плана запрос выполняется с правами учетной записи SQL Server, поэтому сначала используйте тестовую среду или отдельный вход с ограниченными правами.
В планах встречаются текст SQL, значения параметров и имена объектов. Через MCP эти сведения получает модель агента. У приложения HTTP-сервер по умолчанию выключен и слушает localhost; отдельный режим CLI работает через `stdio`. На Linux системного хранилища паролей нет, доступные способы передачи секрета нужно выбирать отдельно.
Как отключить. Команда `dotnet tool uninstall -g PerformanceStudio.Cli` удаляет консольный инструмент. MCP-сервер приложения отключает значение `false` у ключа `mcp_enabled` в `~/.planview/settings.json`, а подключение к Claude Code снимает `claude mcp remove performance-studio`.
Частые вопросы
Как поставить `planview` для анализа планов SQL Server?
Выполните `dotnet tool install -g PerformanceStudio.Cli`, нужен .NET 10 runtime. В CI инструмент ставят в папку флагом `--tool-path` и фиксируют версию через `--version`. Обновляет команда `dotnet tool update -g PerformanceStudio.Cli`.
Как подключить MCP-сервер Performance Studio к Claude Code?
Включите сервер в `~/.planview/settings.json` ключами `mcp_enabled: true` и `mcp_port: 5152`, затем выполните `claude mcp add --transport http --scope user performance-studio http://localhost:5152/`. Сервер слушает только localhost и по умолчанию выключен.
Выполнит ли `planview` мой запрос на сервере?
Зависит от режима: при снятии фактического плана запрос выполняется. Флаг `--estimated` получает оценочный план без выполнения запроса. Доступ к серверу и возможное раскрытие текста SQL нужно учитывать в обоих случаях.
Какие предупреждения показывает анализ плана?
Тридцать правил охватывают сбросы хэша, сортировки и обмена в `tempdb`, перекос параллелизма, поиск по ключу и RID, поздние фильтры, цикл вложенных петель, чувствительность к параметрам, скалярные функции, неявные преобразования и антипаттерны вроде `OPTIMIZE FOR UNKNOWN`. У предупреждения есть уровень и контекст; номер оператора указывается, когда замечание относится к конкретному оператору.
Где `planview` хранит пароли к SQL Server?
Команда `planview credential add` кладет пароль в Windows Credential Manager или Связку ключей macOS, на диск открытым текстом ничего не пишется. На Linux хранилища нет, поэтому передавайте логин и пароль через `--password-stdin` или файл `.env`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыMySQL MCP Server Pro
mysql_mcp_server_pro
MCP-сервер для MySQL: выполняет SQL с ролями доступа, ищет таблицы по комментариям и разбирает блокировки, индексы и планы запросов
Платформа мониторинга SQL Server, MySQL и PostgreSQL с MCP на 11 инструментов: агент читает метрики, а не сами базы.
Десктопное рабочее место для SQL с встроенным MCP-сервером: агент читает схему и выполняет запросы в том же клиенте, где работаете вы
Агент запрашивает метрики, логи и трассы из GreptimeDB на SQL, TQL и RANGE, с запретом записи и маскировкой чувствительных данных
MCP-сервер и плагин Claude Code для SQL: проверка, форматирование, линт и поиск инъекций в запросах на восьми диалектах.
sqlsure проверяет SQL по заявленным фактам схемы и ловит задвоение сумм после join до запуска запроса.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Performance Studio (эта карточка) | нет | 250 | ||
| Microsoft SQL Server MCP Server | нет | ключ необязателен | 404 | MCP-сервер для запросов и схемы базы, без разбора планов выполнения |
| DBHub | нет | не нужна | 3 839 | универсальный MCP-сервер для нескольких СУБД, не анализирует планы и Query Store |
Коротко о README
Помимо анализа, настольное приложение сравнивает планы и готовит материалы для воспроизведения запроса. Проект распространяется по MIT; готовые архивы доступны для Windows, macOS и Linux.