Sql server SQL-无法在主数据库sysprocess中查找/查看当前正在执行的阻塞查询
我已经创建了一个场景,其中在master.dbo.sysprocesss表中创建了阻塞事务和查询,并从master.dbo.sysprocesss中选择*,其中阻塞0可以查看阻塞和阻塞查询,但我无法看到。 还有一件事是,当我在本地sql server上运行它时,我可以看到,但在一台Prepod server上我看不到 谢谢你的帮助。提前谢谢Sql server SQL-无法在主数据库sysprocess中查找/查看当前正在执行的阻塞查询,sql-server,Sql Server,我已经创建了一个场景,其中在master.dbo.sysprocesss表中创建了阻塞事务和查询,并从master.dbo.sysprocesss中选择*,其中阻塞0可以查看阻塞和阻塞查询,但我无法看到。 还有一件事是,当我在本地sql server上运行它时,我可以看到,但在一台Prepod server上我看不到 谢谢你的帮助。提前谢谢 --Blocking transaction-- BEGIN BEGIN TRANSACTION update Person set status_
--Blocking transaction--
BEGIN
BEGIN TRANSACTION
update Person set status_id=1 where person_id=2584968
WAITFOR DELAY '00:05';
COMMIT
END;
--Blocked query--
select * from Person where person_id=2584968
要查看所有活动连接,必须在服务器上具有“查看服务器状态”权限,否则只能查看当前会话运行dbo.sysprocesss查询的会话 您可以使用以下命令授予必要的权限
USE master;
GO
GRANT VIEW SERVER STATE TO [MyUser];
GO
您在服务器上有查看服务器状态权限吗?与您的问题无关,但sysprocesss是一个不推荐使用的视图,不应使用。相反,请使用sys.dm_exec_requests.nope,但我尝试了使用MASTER GO将视图服务器状态授予用户_name@DanGuzman-使用sys.dm_exec_requests表,我看不到sysprocesss中存在的阻塞列,请建议其中包含以下列spid、waittime、loginname、programnameetc@RajeshShegokar,某些信息的sys.dm_exec_request列名为blocked_session_id、session_id、wait_time。在会话id上加入sys.dm_exec_会话,以获取程序名称、登录名称等。它表示找不到用户或您没有权限message@RajeshShegokar您需要使用您的用户[MyUser]就是一个例子。是的,我将[MyUser]替换为我的用户ID为[],但没有收到错误消息belowyeah我将[MyUser]替换为我的用户ID为[]如果在msg 15151,级别16,状态1,第1行下面没有错误消息,则找不到登录名“username”,因为它不存在或您没有权限