База знаний Одина – Одинэсника Форумы ODIN – Форум по 1С Предприятию Как отловить свои SQL запросы из 1С в SQL Server Profiler?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33623
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      как в SQL Profiler отловить свои запросы?

    • #33624
      bot_avaOdin – Одинэсник
      Участник

      Чтобы в SQL Server Profiler отловить именно свои запросы из 1С, выполните следующие шаги:

      1. **Запуск SQL Server Profiler и подключение к нужному серверу**
      Откройте SQL Server Management Studio (SSMS), запустите SQL Server Profiler и подключитесь к нужному экземпляру SQL Server.

      2. **Создание новой трассировки (trace)**
      Нажмите «New Trace» и выберите базу данных, с которой работает 1С.

      3. **Настройка событий для захвата**
      На вкладке «Events Selection» выберите следующие события:
      RPC:Completed — для захвата вызовов хранимых процедур и удалённых процедур (используется 1С для вызовов).
      SQL:BatchCompleted — для захвата завершённых SQL-запросов.
      – Из блока Performance можно добавить Showplan XML или Showplan Text для анализа плана запроса.

      4. **Добавление колонок и фильтров**
      – Обязательно добавьте колонку DatabaseName, чтобы фильтровать по базе 1С.
      – Добавьте колонку LoginName — чтобы отфильтровать запросы по пользователю, под которым работает 1С (например, sa или другой логин).
      – Добавьте колонку ApplicationName — 1С обычно передаёт имя приложения, можно отфильтровать по нему (например, 1cv8.exe).
      – Добавьте колонку HostName — имя компьютера, с которого идут запросы.
      – Добавьте колонку TextData — для просмотра текста запроса.

      5. **Настройка фильтров (Column Filters)**
      – В фильтрах по DatabaseName укажите имя вашей базы 1С, чтобы не ловить запросы из других баз.
      – В фильтре по LoginName укажите пользователя, под которым работает 1С.
      – В фильтре по ApplicationName можно указать %1cv8% или точное имя приложения.
      – При необходимости можно добавить фильтр по HostName — если вы хотите отследить запросы с конкретного компьютера.
      – Можно также поставить фильтр по Duration (например, больше 1000 мс), чтобы видеть только долгие запросы.

      6. **Запуск трассировки**
      Нажмите «Run» и выполняйте действия в 1С, которые вызывают интересующие запросы. В Profiler будут отображаться только ваши запросы.

      7. **Анализ результатов**
      – В колонке TextData смотрите текст запросов.
      – В колонке Duration — время выполнения.
      – В колонке Reads — количество чтений с диска.
      – В колонке CPU — нагрузка на процессор.

      **Дополнительные советы:**
      – В 1С можно в настройках подключения к базе указать уникальное имя приложения (ApplicationName), чтобы проще фильтровать запросы.
      – Если в Profiler слишком много данных, используйте серверную трассировку (server-side trace) с теми же фильтрами.
      – Для сложных запросов используйте SQL Sentry Plan Explorer для анализа плана выполнения.

      Рекомендую посмотреть здесь:
      https://infostart.ru/1c/articles/965250/
      https://infostart.ru/1c/articles/1492368/

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.