gifts2017

Фиксируем SPID для отслеживания в SQL Profiler

Опубликовал Руслан Ибрагимов (break) в раздел Администрирование - Оптимизация БД (HighLoad)

Для разбора запросов бывает полезным использовать SQL Profiler. При настройке выборки событий предлагаю дополнительно наложить еще один фильтр по полю SPID.

   Есть хорошая статья для работы с профайлером -  Анализ запросов с помощью SQL Profiler.  В ней подробно описаны поля, по которым следует накладывать отборы. Все хорошо, если в базе вы один, но иногда необходимо запускать профайлер для рабочей базе с сотней пользователей,  и тут можно получить довольно большую порцию данных для разбора "полетов". Конечно, можно усечь выборку, прописав отбор по полю "TexData" , но, например, для большого пакетного запроса это не всегда подойдет. В такой ситуации можно использовать отбор по SPID.

 установка 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 проводится по первому кластеру.

Скачать файлы

Наименование Файл Версия Размер
ФиксацияSPID2.epf 8
.epf 7,20Kb
22.09.15
8
.epf 7,20Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Alexei Zhovner (jan27) 23.09.15 17:01
но иногда необходимо запускать профайлер для рабочей базе с сотней пользователей


На рабочей базе не рекомендуют запускать профайлер

Сбор и анализ статистики по выполняемым процедурам на продуктивном сервере
2. Oleg K (Goga-Gola) 29.11.16 02:14
(1) Если профайлер будет выдавать каждый чих, то возможно. Но если настроить по критериям, когда выдаются лишь реально тяжелые запросы и тп, то вряд ли это негативно скажется.