Odin | База знаний 1С

Как отловить свои S...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Чтобы в 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/



   
ОтветитьЦитата