Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 От кого пришел запрос  [new]
pXn
Member

Откуда: Косопузая
Сообщений: 45
Всем доброго времени суток!

Ситуация следующая.
1. MS SQL 2012 Enterprise SP1
2. Прямого доступа к серверу нет. Общение только по почте (отдал скрипт, получил ответ).

Сама проблема:
На сервере в Activity Monitor -> Recent Expencive Qeries висит "fetch cur1 into @a1" с Executions/min >5000000
Логические чтения вообще зашкаливают (> 120 млн)

Можно ли как-то узнать в данном случае (см. п.2), что за сессия это делает?
Хранит ли СУБД информацию по окончанию запроса, кто его делал, тем более если запрос выполнен/сессия завершена?


Пробовал с помощью DMV (dm_exec_requests, _sessions, _connections, _sql_text).
Запрос с такой строкой в кэше находился. И по его sql_handle смотрел в сессиях.
Но соответствий не было.


Пробовал плясать от печки :) - найти данную строку в исходниках на сервере (по syscomments), определить БД, схему, объект. И по логике ПО вычислить процесс.
Пусто. Такая строка не найдена.

У меня остался один вариант - трассировка.
А может можно как-то еще? Сам сомневаюсь, ну а вдруг :)
16 окт 15, 20:00    [18289927]     Ответить | Цитировать Сообщить модератору
 Re: От кого пришел запрос  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8316
pXn,

вы можете скриптом записать трассировку в текстовый файл, например.
Вполне возможно, что в цикле курсора забыли fetch написать.
16 окт 15, 20:09    [18289974]     Ответить | Цитировать Сообщить модератору
 Re: От кого пришел запрос  [new]
pXn
Member

Откуда: Косопузая
Сообщений: 45
Владислав Колосов
pXn,

вы можете скриптом записать трассировку в текстовый файл, например.


Такой способ знаю. Спасибо. Но это крайний вариант. Есть некоторые организационные преграды.

Владислав Колосов
Вполне возможно, что в цикле курсора забыли fetch написать.

Угу. Вот и хотим узнать кто, чтобы этому спецу руки в нужное место перенести и рассказать про тестовую среду
16 окт 15, 20:29    [18290105]     Ответить | Цитировать Сообщить модератору
 Re: От кого пришел запрос  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31779
pXn
Владислав Колосов
вы можете скриптом записать трассировку в текстовый файл, например.
Такой способ знаю. Спасибо. Но это крайний вариант. Есть некоторые организационные преграды.
Это может быть код из процедуры, а трассировку с входом в процедуры делать слишком накладно...
pXn
На сервере в Activity Monitor -> Recent Expencive Qeries висит "fetch cur1 into @a1" с Executions/min >5000000
Логические чтения вообще зашкаливают (> 120 млн)

Можно ли как-то узнать в данном случае (см. п.2), что за сессия это делает?
Хранит ли СУБД информацию по окончанию запроса, кто его делал, тем более если запрос выполнен/сессия завершена?
Так когда Activity Monitor ловит это, у него же есть данные о сессии?
повторяющиеся строки в мониторе активности
16 окт 15, 22:45    [18290600]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить