このトピックでは、ApsaraDB RDS for SQL Server インスタンスの現在のプロセスと、そのプロセスで実行されている SQL ステートメントを表示する方法について説明します。
SYSPROCESSES システムビューによる現在のプロセスの表示
Master.dbo.SYSPROCESSES ビューは、アクティブなプロセスに関する詳細を提供します。Master.dbo.SYSDATABASES ビューでネストされたクエリを実行することにより、RDS インスタンスの現在のすべてのプロセスを特定できます。次のステートメントは、現在のプロセスを表示する例です:
SELECT * FROM
[Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT
[DBID]
FROM
[Master].[dbo].[SYSDATABASES]
WHERE
NAME='<database name>'
)クエリ結果には、SPID (サーバープロセス ID)、STATUS (ステータス (例:実行可能またはスリープ状態))、LOGINAME (ログイン名)、HOSTNAME (ホスト名)、DBID (データベース ID)、CMD (現在実行中のコマンド) などの列が含まれます。
sp_who によるセッションと SQL ステートメントの表示
構文:
sp_who --すべてのセッションを表示
sp_who '<username>' --特定のユーザーのセッションを表示sp_who の出力には、SPID (サーバープロセス ID)、STATUS (ステータス (例:バックグラウンドまたはスリープ状態))、LOGINAME (ログイン名)、CMD (実行中のコマンド (例:LOG WRITER、RECOVERY WRITER、LAZY WRITER、TASK MANAGER などのシステムプロセス))、REQUEST_ID などの列が含まれます。CMD 列を使用して、各セッションが実行している操作の種類を特定できます。