SQL Server: sp_who2 の出力をフィルタリングして必要な情報を見つける
SQL Server: sp_who2 の出力をフィルタリングする
sp_who2
は、SQL Server インスタンスに接続されているユーザーセッションに関する情報を提供する非常に便利なシステムストアドプロシージャです。しかし、デフォルトでは大量の情報が出力されるため、必要な情報を見つけるのが困難な場合があります。そこで、このチュートリアルでは、sp_who2
の出力をフィルタリングして、特定の条件に合致するセッションのみを表示する方法を紹介します。
必要なもの
- SQL Server Management Studio (SSMS)
- SQL Server インスタンスへのアクセス権
手順
- SSMS を開き、SQL Server インスタンスに接続します。
- 新しいクエリウィンドウを開き、以下のコードを入力します。
USE [master]
GO
EXEC sp_who2
USE [master]
GO
EXEC sp_who2
WHERE loginame LIKE '%sa%'
- 他の条件も追加できます。例えば、以下のコードは、ログイン名に "sa" を含み、データベース "AdventureWorks2019" に接続しているセッションのみを表示します。
USE [master]
GO
EXEC sp_who2
WHERE loginame LIKE '%sa%'
AND dbid = 5
フィルタリングオプション
sp_who2
は、さまざまな条件に基づいて出力をフィルタリングするための多くのオプションを提供しています。以下は、その例です。
loginame
: ログイン名dbname
: データベース名status
: セッションステータスspid
: セッション IDprogram_name
: クライアントアプリケーション名host_name
: クライアントホスト名
USE [master]
GO
EXEC sp_who2
WHERE loginame LIKE '%sa%'
データベース "AdventureWorks2019" に接続しているセッションのみを表示
USE [master]
GO
EXEC sp_who2
WHERE dbid = 5
USE [master]
GO
EXEC sp_who2
WHERE loginame LIKE '%sa%'
AND dbid = 5
アイドル状態のセッションのみを表示
USE [master]
GO
EXEC sp_who2
WHERE status = 'sleeping'
過去 5 分以内にアクティビティがあったセッションのみを表示
USE [master]
GO
EXEC sp_who2
WHERE last_request_date > DATEADD(minute, -5, GETDATE())
特定のクライアントアプリケーションを使用しているセッションのみを表示
USE [master]
GO
EXEC sp_who2
WHERE program_name LIKE '%SQL Server Management Studio%'
特定のクライアントホストから接続しているセッションのみを表示
USE [master]
GO
EXEC sp_who2
WHERE host_name LIKE '%localhost%'
- クエリエディタのツールバーにある フィルター ボタンをクリックします。
- フィルター ダイアログボックスで、フィルタリング条件を指定します。
- OK をクリックして、フィルターを適用します。
DMV を使用する
sp_who2
は、sys.dm_exec_sessions
などの DMV (ダイナミック管理ビュー) を使用して、より詳細な情報を取得できます。
- 以下のクエリは、
sys.dm_exec_sessions
を使用して、ログイン名、データベース名、セッションステータスなどの情報を表示します。
SELECT loginame, dbid, status
FROM sys.dm_exec_sessions
T-SQL スクリプトを使用する
T-SQL スクリプトを作成して、sp_who2
の出力をフィルタリングすることができます。
- 以下のスクリプトは、ログイン名に "sa" を含むセッションのみを表示します。
USE [master]
GO
DECLARE @loginame VARCHAR(255)
SET @loginame = '%sa%'
EXEC sp_who2
WHERE loginame LIKE @loginame
サードパーティ製のツールを使用する
SQL Server の管理に役立つサードパーティ製ツールも多数存在します。これらのツールの中には、sp_who2
の出力をフィルタリングするための機能が備わっているものもあります。
sql-server sql-server-2016