如何查看 sqlserver 某个数据库正在执行的语句sql server spid 活动
广告:
EXEC sp_who2;
你可以使用 sp_who 或 sp_who2 系统存储过程来查看当前活动的 SPID。这些存储过程提供了关于每个会话的详细信息,如登录名、数据库、阻塞情况、命令状态等。
,你可以使用 sp_who,它提供了较少的信息:
EXEC sp_who;
指定某个数据库
EXEC sp_who2 'erpdata';
amiba XTWY-20250507VF AmibaERP613_@_闰言 spid 52
SELECT req.session_id, req.status, req.command, SUBSTRING(t.text, (req.statement_start_offset/2) + 1, ((CASE req.statement_end_offset WHEN -1 THEN DATALENGTH(t.text) ELSE req.statement_end_offset END - req.statement_start_offset)/2) + 1) AS executing_sql FROM sys.dm_exec_requests AS req CROSS APPLY sys.dm_exec_sql_text(req.sql_handle) AS t;
如果你需要结束一个或多个会话,可以使用 KILL 命令后跟 SPID。例如,要杀死 SPID 为 55 的会话:
KILL 55;
SQL Server 还提供了动态管理视图(DMVs),如 sys.dm_exec_sessions 和 sys.dm_exec_requests,这些视图提供了关于活动进程的详细信息,而不需要使用存储过程。
示例查询当前活动的会话和请求:
SELECT
session_id,
login_name,
status,
host_name,
program_name,
last_request_start_time,
last_request_end_time
FROM sys.dm_exec_sessions;
广告: