SELECT at.text,sp.* FROM[Master].[dbo].[SYSPROCESSES] sp
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS at
WHERE hostprocess=3616
以上語句作用:
查詢客戶端進程PID 爲3616的程序,與此數據庫的所有的連接數,每個連接最後執行的語句以及每個連接的詳細信息。
進程PID 可以在任務管理器中進行查看。
連接最後執行的語句是text列的詳細信息。
每個連接的詳細信息在sp.*中詳細說明。
執行結果
spid 前50個表示的是 系統進程ID
查看文檔:
以下是sysprocesses 表中保存關於運行在 Microsoft® SQL Server™ 上的進程的信息。這些進程可以是客戶端進程或系統進程。sysprocesses 只存儲在master 數據庫中。
列名 | 數據類型 | 描述 |
---|---|---|
spid | smallint | SQL Server 進程 ID。 |
kpid | smallint | Microsoft Windows NT 4.0® 線程 ID。 |
blocked | smallint | 分塊進程的進程 ID (spid)。 |
waittype | binary(2) | 保留。 |
waittime | int | 當前等待時間(以毫秒爲單位)。當進程不處於等待時,爲 0。 |
lastwaittype | nchar(32) | 表示上次或當前等待類型名稱的字符串。 |
waitresource | nchar(32) | 鎖資源的文本化表示法。 |
dbid | smallint | 當前正由進程使用的數據庫 ID。 |
uid | smallint | 執行命令的用戶 ID。 |
cpu | int | 進程的累計 CPU 時間。無論 SET STATISTICS TIME ON 選項是 ON 還是 OFF,都爲所有進程更新該條目。 |
physical_io | int | 進程的累計磁盤讀取和寫入。 |
memusage | int | 當前分配給該進程的過程高速緩存中的頁數。一個負數,表示進程正在釋放由另一個進程分配的內存。 |
login_time | datetime | 客戶端進程登錄到服務器的時間。對於系統進程,是存儲 SQL Server 啓動發生的時間。 |
last_batch | datetime | 客戶端進程上次執行遠程存儲過程調用或 EXECUTE 語句的時間。對於系統進程,是存儲 SQL Server 啓動發生的時間。 |
ecid | smallint | 用於唯一標識代表單個進程進行操作的子線程的執行上下文 ID。 |
open_tran | smallint | 進程的打開事務數。 |
status | nchar(30) | 進程 ID 狀態(如運行、休眠等)。 |
sid | binary(85) | 用戶的全局唯一標識符 (GUID)。 |
hostname | nchar(128) | 工作站的名稱。 |
program_name | nchar(128) | 應用程序的名稱。 |
hostprocess | nchar(8) | 工作站進程 ID 號。 |
cmd | nchar(16) | 當前正在執行的命令。 |
nt_domain | nchar(128) | 客戶端的 Windows NT 4.0 域(如果使用 Windows 身份驗證)或信任連接的 Windows NT 4.0 域。 |
nt_username | nchar(128) | 進程的 Windows NT 4.0用戶名(如果使用 Windows 身份驗證)或信任連接的 Windows NT 4.0 用戶名。 |
net_address | nchar(12) | 指派給每個用戶工作站上的網絡接口卡唯一標識符。當用戶登錄時,該標識符插入net_address 列。 |
net_library | nchar(12) | 用於存儲客戶端網絡庫的列。每個客戶端進程都在網絡連接上進入。網絡連接有一個與這些進程關聯的網絡庫,該網絡庫使得這些進程可以建立連接。有關更多信息,請參見客戶端和服務器 Net-Library。 |
loginame | nchar(128) | 登錄名。 |