Есть хорошая статья для работы с профайлером - Анализ запросов с помощью SQL Profiler. В ней подробно описаны поля, по которым следует накладывать отборы. Все хорошо, если в базе вы один, но иногда необходимо запускать профайлер для рабочей базе с сотней пользователей, и тут можно получить довольно большую порцию данных для разбора "полетов". Конечно, можно усечь выборку, прописав отбор по полю "TexData" , но, например, для большого пакетного запроса это не всегда подойдет. В такой ситуации можно использовать отбор по SPID.
SPID – в нашем случае это номер соединения сервера 1С и SQL, отличный для каждого сеанса. Периодически он меняется. Можно просмотреть все соединения SQL-сервера вот таким простым запросом в SSMS
SELECT *
FROM sys.dm_exec_sessions
Подробнее о SPID можно почитать здесь SQL Server SPID – What is it?
Представленная обработка позволяет зафиксировать SPID текущего сеанса. Фиксация производится простым запросом с использованием менеджера временных таблиц.
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ 1 ПОМЕСТИТЬ ВТ";
Результат = Запрос.Выполнить();
МВТ = Запрос.МенеджерВременныхТаблиц;
Порядок использования:
1. Запускаем обработку. Если у Вас заведен администратор кластера – указываем в соответствующих полях.
2. Нажимаем «Зафиксировать SPID». Ждем, пока будет прочитан SPID. Он будет держаться до закрытия обработки.
Можно открыть консоль кластера и убедиться, что SPID совпадает со значением в колонке «Соединение СУБД»
3. Настраиваем профайлер, в отборах указываем полученный SPID.
4. Запускаем трассировку.
5. Запускаем анализируемое действие в 1С.
6. Останавливаем трассировку. Получаем события только нашего сеанса.
Обработка имеет ограничение – поиск SPID проводится по первому кластеру.