SQL serverクエリー・ユーザーの接続数
4244 ワード
方法1:
方法2:SP_を実行するWHOまたはSP_WHO2 sp_who[**@loginame=]'login'|session ID|'ACTIVE'*]結果:background:セッションはデッドロック検出などのバックグラウンドタスクを実行しています.rollback:セッションには処理中のトランザクションロールバックがあります.pending:セッションは、作業スレッドが使用可能になるのを待っています.runnable:セッションのタスクは、取得時間スレッドを待つ間に計画プログラムの実行可能なキューに存在します.spinloop:セッションのタスクは、調整ロックが使用可能になるのを待っています.suspended:I/Oなどのイベントの完了をセッションが待機しています.
メソッド3:SessionIdクエリーによる
どのようにwho_を検索しますspストレージプロセスの結果?テンポラリテーブル を通過する.またはテンポラリ・テーブル
現在のサービス・ユーザーが実行するSQLの文を問い合わせる
SELECT * FROM
[Master].[dbo].[SYSPROCESSES] WHERE [DBID]
IN
(
SELECT
[DBID]
FROM
[Master].[dbo].[SYSDATABASES]
WHERE
NAME='escm2'
)
方法2:SP_を実行するWHOまたはSP_WHO2 sp_who[**@loginame=]'login'|session ID|'ACTIVE'*]結果:background:セッションはデッドロック検出などのバックグラウンドタスクを実行しています.rollback:セッションには処理中のトランザクションロールバックがあります.pending:セッションは、作業スレッドが使用可能になるのを待っています.runnable:セッションのタスクは、取得時間スレッドを待つ間に計画プログラムの実行可能なキューに存在します.spinloop:セッションのタスクは、調整ロックが使用可能になるのを待っています.suspended:I/Oなどのイベントの完了をセッションが待機しています.
メソッド3:SessionIdクエリーによる
CREATE PROCEDURE sp_who3
( @SessionID int = NULL )
AS
BEGIN
SELECT
SPID = er.session_id
,Status = ses.status
,[Login] = ses.login_name
,Host = ses.host_name
,BlkBy = er.blocking_session_id
,DBName = DB_Name(er.database_id)
,CommandType = er.command
,SQLStatement = st.text
,ObjectName = OBJECT_NAME(st.objectid)
,ElapsedMS = er.total_elapsed_time
,CPUTime = er.cpu_time
,IOReads = er.logical_reads + er.reads
,IOWrites = er.writes
,LastWaitType = er.last_wait_type
,StartTime = er.start_time
,Protocol = con.net_transport
,ConnectionWrites = con.num_writes
,ConnectionReads = con.num_reads
,ClientAddress = con.client_net_address
,Authentication = con.auth_scheme
FROM sys.dm_exec_requests er
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFT JOIN sys.dm_exec_sessions ses
ON ses.session_id = er.session_id
LEFT JOIN sys.dm_exec_connections con
ON con.session_id = ses.session_id
WHERE er.session_id > 50
AND @SessionID IS NULL OR er.session_id = @SessionID
ORDER BY
er.blocking_session_id DESC
,er.session_id
END
どのようにwho_を検索しますspストレージプロセスの結果?
CREATE TABLE #sp_who2
(
SPID INT,
Status VARCHAR(255),
Login VARCHAR(255),HostName VARCHAR(255),
BlkBy VARCHAR(255),DBName VARCHAR(255),
Command VARCHAR(255),CPUTime INT,
DiskIO INT,LastBatch VARCHAR(255),
ProgramName VARCHAR(255),SPID2 INT,
REQUESTID INT);
INSERT INTO #sp_who2 EXEC sp_who2
SELECT *
FROM #sp_who2
-- Add any filtering of the results here :
WHERE DBName = 'escm2'
-- Add any sorting of the results here :
ORDER BY DBName ASC
DROP TABLE #sp_who2
declare @tempTable table (SPID INT,Status VARCHAR(255),
Login VARCHAR(255),HostName VARCHAR(255),
BlkBy VARCHAR(255),DBName VARCHAR(255),
Command VARCHAR(255),CPUTime INT,
DiskIO INT,LastBatch VARCHAR(255),
ProgramName VARCHAR(255),SPID2 INT,
REQUESTID INT);
INSERT INTO @tempTable
EXEC sp_who2
select *
from @tempTable
where DBName = 'escm2'
現在のサービス・ユーザーが実行するSQLの文を問い合わせる
-- SQL
select
SPID = er.session_id
,Status = ses.status
,[Login] = ses.login_name
,Host = ses.host_name
,BlkBy = er.blocking_session_id
,DBName = DB_Name(er.database_id)
,CommandType = er.command
,SQLStatement = st.text
,ObjectName = OBJECT_NAME(st.objectid)
,ElapsedMS = er.total_elapsed_time
,CPUTime = er.cpu_time
,IOReads = er.logical_reads + er.reads
,IOWrites = er.writes
,LastWaitType = er.last_wait_type
,StartTime = er.start_time
,Protocol = con.net_transport
,ConnectionWrites = con.num_writes
,ConnectionReads = con.num_reads
,ClientAddress = con.client_net_address
,Authentication = con.auth_scheme
FROM sys.dm_exec_requests er
OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st
LEFT JOIN sys.dm_exec_sessions ses
ON ses.session_id = er.session_id
LEFT JOIN sys.dm_exec_connections con
ON con.session_id = ses.session_id
WHERE er.session_id > 50
ORDER BY
er.blocking_session_id DESC