|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
11.2.2. Другие средства мониторинга активности пользователейХранимые процедуры sp_who и sp_who2, sp_lock, команда KILL, представления sys.dm_exec_sessions, sys.dm_exec_connections и sys.dm_tran_locks Просмотреть, кто сейчас подключен к SQL Server и какие блокировки применены к какому объекту, можно и другими способами. Первый способ — использование системных хранимых процедур. Получить информацию о том, какие соединения в настоящее время установлены с SQL Server, можно при помощи процедуры sp_who. Для этой процедуры предусмотрено два варианта запуска. Если выполнить ее без параметров, то она вернет информацию о всех процессах. Если передать ей идентификатор процесса (spid), например, exec sp_who 55, то она вернет информацию только по этому процессу. У этой хранимой процедуры есть недокументированный вариант — sp_who2. Эта хранимая процедура запускается на выполнение точно так же, но возвращает более подробную информацию. Просмотреть информацию о блокировках, которые применены к объектам определенным процессом, можно при помощи хранимой процедуры sp_lock. Если запустить ее без параметров, она вернет информацию о блокировках для всех процессов. Если передать ей идентификатор процесса, то будет предоставлена информация о блокировках только для этого процесса. Хранимой процедуре sp_lock можно передать сразу несколько идентификаторов, разделив их запятыми. В случае необходимости можно принудительно закрыть соединение при помощи команды Transact-SQL KILL, передав ей идентификатор процесса, например, KILL 51. Новая возможность SQL Server 2005 — динамические представления. Это специальный интерфейс, при помощи которого можно получать информацию о текущей работе сервера или базы данных. К ним можно обращаться из команд Transact-SQL, как к обычным представлениям. Информация в этих представлениях динамически меняется, отражая изменения в работе сервера или базы данных. Информацию о подключениях пользователей можно просмотреть при помощи динамических представлений sys.dm_exec_sessions и sys.dm_exec_connections. В обоих случаях возвращаемой записи будет соответствовать одно соединение, но набор столбцов у этих представлений разный. Представление sys.dm_exec_sessions ориентировано на предоставление информации о сеансах пользователей (фактически возвращается та же информация, что и в Activity Monitor), а sys.dm_exec_connections возвращает информацию о сетевых параметрах подключений пользователей (тип сетевой библиотеки, размер пакета, номера портов и т. п.). Информацию о блокировках, которые применены к объектам на SQL Server, можно просмотреть при помощи динамического представления sys.dm_tran_locks. Информация о сеансе пользователя, который применил данную блокировку, можно найти в столбце request_session_id этого представления.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||