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

Откуда:
Сообщений: 7
Выполняю процедуру sp_who2 на сервере. Меня интересует две строчки:
1. Строчка со SPID = 87. Процедура, запущенная в студии, статус "Runnable" означает, что она выполняется в данный момент времени, Command "Open Cursor" означает, что на данный момент в рамках процедуры исполняется курсор. Тут вроде всё ясно.
2. Существует клиентское приложение, которое по нажатию на кнопку выводит отчёт или выводит какую-то информацию (утрирую).
Подскажите, что означает статус sleeping + awaiting command? То, что пользователь уже "нажал на кнопку" и выполнил запрос но не вышел из приложения? (то есть отображается последняя выполненная команда пользователем с данным SPID). Получается, что строчка с данным SPID изменит своё значение только тогда, когда пользователь выйдет из приложения (она пропадёт) или выполнит другой запрос?

upd. Картинка не прикрепляется, поясню, процедура выводит первую строчку, где SPID 87, статус 'Runnable', command 'Open Cursor', вторую строчку SPID = 68, статус 'Sleeping', command 'Awaiting Command',

Сообщение было отредактировано: 6 ноя 19, 14:52
6 ноя 19, 14:47    [22010798]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Saniacot
Подскажите, что означает статус sleeping + awaiting command? То, что пользователь уже "нажал на кнопку" и выполнил запрос но не вышел из приложения?
То, что с сиквелом из приложения установлен коннект, и в этом коннекте не выполняется никаких команд (либо последняя команда уже выполнилась, либо вообще не было никаких команд с момента открытия коннекта)
Saniacot
Получается, что строчка с данным SPID изменит своё значение только тогда, когда пользователь выйдет из приложения (она пропадёт) или выполнит другой запрос?
Для SQL Server нету понятий "пользователь выйдет из приложения"

Это определяется тем, как программист написал приложение.

Например, приложение может закрыть коннект, а пользователь всё ещё работает с приложением.
Или наоборот, пользователь закрыл приложение, но коннект остался открытым (например, он открыт в каком нибудь сервисе, являющимся частью этого приложения)
6 ноя 19, 15:08    [22010819]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
Saniacot
Member

Откуда:
Сообщений: 7
alexeyvg
Saniacot
Подскажите, что означает статус sleeping + awaiting command? То, что пользователь уже "нажал на кнопку" и выполнил запрос но не вышел из приложения?
То, что с сиквелом из приложения установлен коннект, и в этом коннекте не выполняется никаких команд (либо последняя команда уже выполнилась, либо вообще не было никаких команд с момента открытия коннекта)
Saniacot
Получается, что строчка с данным SPID изменит своё значение только тогда, когда пользователь выйдет из приложения (она пропадёт) или выполнит другой запрос?
Для SQL Server нету понятий "пользователь выйдет из приложения"

Это определяется тем, как программист написал приложение.

Например, приложение может закрыть коннект, а пользователь всё ещё работает с приложением.
Или наоборот, пользователь закрыл приложение, но коннект остался открытым (например, он открыт в каком нибудь сервисе, являющимся частью этого приложения)

Cпасибо за ответ! Получается такие соединения (где статус sleeping + awaiting command) не могут нагружать сервер.
Подскажите, а есть системная (или нет) хранимая процедура, которая показывает текущую нагрузку на сервер? (Блокировок не вижу по данным процедуры sp_who2, но в определенные моменты приложение очень тормозит)
6 ноя 19, 15:14    [22010825]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Saniacot
Получается такие соединения (где статус sleeping + awaiting command) не могут нагружать сервер.
Да, конечно.

Saniacot
Подскажите, а есть системная (или нет) хранимая процедура, которая показывает текущую нагрузку на сервер? (Блокировок не вижу по данным процедуры sp_who2, но в определенные моменты приложение очень тормозит)
Есть счётчики производительности, там всё подробно:
select * from sys.dm_os_performance_counters 


Во вторых, есть куча вью, наверное, там можно найти что то удобное: https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sql-server-operating-system-related-dynamic-management-views-transact-sql
6 ноя 19, 15:35    [22010851]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5042
Saniacot

Подскажите, а есть системная (или нет) хранимая процедура, которая показывает текущую нагрузку на сервер? (Блокировок не вижу по данным процедуры sp_who2, но в определенные моменты приложение очень тормозит)

посмотрите процедуру sp_whoisactive - это отличная замена древней sp_who2
обращайте внимание на типы waits, которые расскажут что ждет запрос

ну и тут описание в свободной форме:
https://habr.com/ru/post/136481/
6 ноя 19, 16:02    [22010877]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
Saniacot
Member

Откуда:
Сообщений: 7
komrad
Saniacot

Подскажите, а есть системная (или нет) хранимая процедура, которая показывает текущую нагрузку на сервер? (Блокировок не вижу по данным процедуры sp_who2, но в определенные моменты приложение очень тормозит)

посмотрите процедуру sp_whoisactive - это отличная замена древней sp_who2
обращайте внимание на типы waits, которые расскажут что ждет запрос

ну и тут описание в свободной форме:
https://habr.com/ru/post/136481/


Cпасибо! Запомню на будущее. Моя текущая версия sql server ещё не поддерживает эту процедуру.
6 ноя 19, 16:14    [22010885]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5042
Saniacot

Cпасибо! Запомню на будущее. Моя текущая версия sql server ещё не поддерживает эту процедуру.


что, неужели MSSQL2000?

покажите
select @@version


Сообщение было отредактировано: 6 ноя 19, 16:18
6 ноя 19, 16:16    [22010889]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
Saniacot
Member

Откуда:
Сообщений: 7
komrad
Saniacot

Cпасибо! Запомню на будущее. Моя текущая версия sql server ещё не поддерживает эту процедуру.


что, неужели MSSQL2000?

покажите
select @@version

Прошу прощения, я думал, что она системная, как и sp_who2 :)
6 ноя 19, 16:23    [22010897]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29587
Saniacot
Прошу прощения, я думал, что она системная, как и sp_who2 :)
Нет, её нужно создать у себя.
6 ноя 19, 16:41    [22010920]     Ответить | Цитировать Сообщить модератору
 Re: sp_who2  [new]
Saniacot
Member

Откуда:
Сообщений: 7
alexeyvg
Saniacot
Прошу прощения, я думал, что она системная, как и sp_who2 :)
Нет, её нужно создать у себя.

Понял, спасибо большое!
6 ноя 19, 16:48    [22010925]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить