Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SQL_PERF_BOTTLENECK 1С:Предприятие и СУБД

SQL Server Profiler и Activity Monitor: как найти тормозящие запросы 1С

Обновлено: 26.08.2026 · Официальная документация ↗
  • 1С начинает сильно зависать в произвольные моменты времени.
  • Загрузка процессора на сервере СУБД подскакивает до 100%.
  • Пользователи жалуются на долгое проведение простых документов или зависание отчетов.
  • Администратору нужно понять, какой именно пользователь или отчет перегружает SQL Server.

Способ 1. Быстрый мониторинг через Activity Monitor (Монитор активности)

  1. Откройте SQL Server Management Studio (SSMS).
  2. Нажмите правой кнопкой мыши на имя сервера в дереве слева → выберите Activity Monitor (или нажмите Ctrl + Alt + A).
  3. Раскройте вкладку Active Expensive Queries (Активные ресурсоемкие запросы):
    • Отсортируйте список по колонке CPU (ms/sec) или Duration (ms).
    • В верхних строках будут самые «тяжелые» запросы, которые выполняются прямо сейчас.
  4. Нажмите правой кнопкой на строку с запросом → Show Execution Plan, чтобы увидеть текст запроса и проблемные таблицы 1С.

Способ 2. Трассировка долгих запросов через SQL Server Profiler

  1. В SSMS перейдите в меню: Tools (Сервис) → SQL Server Profiler.
  2. Подключитесь к серверу, выберите шаблон Standard.
  3. Перейдите на вкладку Events Selection (Выбор событий):
    • Отметьте события: RPC:Completed и SQL:BatchCompleted.
    • Нажмите кнопку Column Filters... (Фильтры столбцов).
    • Выберите DurationGreater than or equal → укажите 5000 (отбирать только запросы, выполняющиеся дольше 5 секунд).
    • Выберите DatabaseNameLike → укажите имя вашей базы 1С.
  4. Нажмите Run. В окне в реальном времени начнут появляться только те запросы 1С, которые реально тормозят систему.
💡 Практика специалистов: Для постоянного мониторинга продуктивных баз используйте встроенные Расширенные события (Extended Events) со сбросом данных в кольцевой буфер или технологический журнал 1С с настроенным сбором событий DBMSSQL с фильтром по длительности.

Частые вопросы (FAQ)

Сильно ли SQL Server Profiler нагружает сервер при работе?

Если не поставить фильтр по Duration или имени базы, профилировщик будет собирать миллионы событий и создаст ощутимую дополнительную нагрузку. С правильными фильтрами нагрузка минимальна.

Как по непонятному тексту запроса SQL понять, какой это документ в 1С?

Найдите в запросе имена таблиц (например, _Document123) и сопоставьте их через Конфигуратор или функцию ПолучитьСтруктуруХраненияБазыДанных().

Что такое Extended Events и почему Microsoft рекомендует их вместо Profiler?

Extended Events (Расширенные события) — это современный легковесный механизм мониторинга внутри самого SQL Server, пришедший на смену старому Profiler.

Что чаще всего является причиной долгих запросов в 1С?

Отсутствие индексов по реквизитам отбора, запросы в цикле, использование подзапросов в соединениях и неоптимальные отчеты без ограничения периода.

Полезные материалы
Рекомендуем