Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
21.01.2021, 13:35
|
|||
---|---|---|---|
|
|||
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
Привет всем. Подскажите как можно получить свойство NOCOUNT для произвольной сессии? Проблема: Есть сервер приложения, из которого открыто несколько сотен сессий. Из любой из них может запускаться хранимая процедура (которых много). Есть подозрение, что в какой-то из хранимок повреждается свойство сессии NOCOUNT что влечет неправильную работу всего приложения (соединения к БД не закрываются после выполнения хранимок, а возвращаются в пул) Я поискал в документации https://docs.microsoft.com/ru-ru/sql/t-sql/statements/set-nocount-transact-sql?view=sql-server-ver15 Нашел что для текущей сессии можно определить включенность свойства NOCOUNT так Код: sql 1. 2. 3.
А как простым способом проверить все сессии и найти проблемную ? Есть какая-то системная вьюха или хранимка. Нагуглить не получилось. Ну или не все, а получить свойство NOCOUNT для другой (не текущей) сессии. Дальше уж я сам разберусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 13:54
|
|||
---|---|---|---|
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
Если nocount установлено на уровне сессии, то повредить его в процедуре невозможно. Если значение nocount было изменено в процедуре, то оно будет восстановлено после завершения процедуры. И так не только для процедур, но и для любого вложенного батча. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 13:59
|
|||
---|---|---|---|
|
|||
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
invm Если nocount установлено на уровне сессии, то повредить его в процедуре невозможно. Если значение nocount было изменено в процедуре, то оно будет восстановлено после завершения процедуры. И так не только для процедур, но и для любого вложенного батча. Есть сомнение что это именно так. По крайней мере гуглится куча советов где выравнивание этого свойства рекомендуется как волшебная пилюля. https://community.dynamics.com/ax/f/microsoft-dynamics-ax-forum/69323/update-conflict-sysclientsessions http://axforum.info/forums/showthread.php?p=289455#post289455 Вот я и хочу проверить это. Можно как-то посмотреть это свойство для других соединений ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 14:29
|
|||
---|---|---|---|
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
Павел677, посмотрите sys.dm_exec_plan_attributes ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 15:05
|
|||
---|---|---|---|
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
Павел677 Есть сомнение что это именно так. komrad посмотрите sys.dm_exec_plan_attributes NOCOUNT в их число не входит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 15:06
|
|||
---|---|---|---|
|
|||
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
komrad посмотрите sys.dm_exec_plan_attributes спс. Что-то не нахожу там упоминаний. Странно как-то. sys.dm_exec_requests содержит свойство сессии arithabort и кучу других свойств сессии. А для NoCount места не нашлось. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 15:11
|
|||
---|---|---|---|
|
|||
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
invm https://docs.microsoft.com/en-us/sql/t-sql/statements/set-statements-transact-sql?view=sql-server-ver15If a SET statement runs in a stored procedure or trigger, the value of the SET option gets restored after the stored procedure or trigger returns control. Also, if you specify a SET statement in a dynamic SQL string that runs by using either sp_executesql or EXECUTE, the value of the SET option gets restored after control returns from the batch that you specified in the dynamic SQL string. Тогда очень странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 15:18
|
|||
---|---|---|---|
|
|||
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
Павел677 что влечет неправильную работу всего приложения (соединения к БД не закрываются после выполнения хранимок, а возвращаются в пул) Ну вообще это стандартное поведение провайдера данных. Вы хотите отключить пулинг сессий? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.01.2021, 15:31
|
|||
---|---|---|---|
|
|||
Как найти @@OPTIONS (NOCOUNT) для другой (произвольной сессии) |
|||
#18+
Сон Веры Павловны Павел677 что влечет неправильную работу всего приложения (соединения к БД не закрываются после выполнения хранимок, а возвращаются в пул) Ну вообще это стандартное поведение провайдера данных. Вы хотите отключить пулинг сессий? Разве я про это писал ? Это просто описание как работает система (Axapta 2009) Мне нужно исправить проблему, которая предположительно связана с порчей свойства сессии NoCount. А чтобы это проверить, проще всего просмотреть все открытые сессии и для каждой считать это свойство NoCount. Средствами Аксапты это сделать невозможно. Пул соединений мне недоступен (этим kernel рулит). Хочу зайти со стороны SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1685183]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 292ms |
total: | 549ms |
0 / 0 |