MSSQL2005 SYS.SYSPROCESSES使用--整理帖
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
))+ '';'' from sys.sysprocesses WHERE DBID=DB_ID(''db_wip'') exec(@sql) (2.2)查詢死鎖,解決死鎖 概念: 死锁是一种可能发生在任何多线程系统中的状态,而不仅仅发生在关系数据库管理系统中。多线程系统中的一个线程可能获取一个或多个资源(如锁)。如果正获取的资源当前为另一线程所拥有,则第一个线程可能必须等待拥有线程释放目标资源。这时就说等待线程在那个特定资源上与拥有线程有相关性。 如果拥有线程需要获取另外一个资源,而该资源当前为等待线程所拥有,则这种情形将成为死锁:在事务提交或回滚之前两个线程都不能释放资源,而且它们因为正等待对方拥有的资源而不能提交或回滚事务。例如,运行事务 1 的线程 T1 具有 Supplier 表上的排它锁。运行事务 2 的线程 T2 具有 Part 表上的排它锁,并且之后需要 Supplier 表上的锁。事务 2 无法获得这一锁,因为事务 1 已拥有它。事务 2 被阻塞,等待事务 1。然后,事务 1 需要 Part 表的锁,但无法获得锁,因为事务 2 将它锁定了。事务在提交或回滚之前不能释放持有的锁。因为事务需要对方控制的锁才能继续操作,所以它们不能提交或回滚。 死锁经常与正常阻塞混淆。当一个事务锁定了另一个事务需要的资源,第二个事务等待锁被释放。默认情况下,SQL Server 事务不会超时(除非设置了 LOCK_TIMEOUT)。第二个事务被阻塞,而不是被死锁。 use master go declare @spid int,@bl int declare s_cur cursor for select 0 ,blocked from (select * from sysprocesses where blocked>0 ) a where not exists(select * from (select * from sysprocesses where blocked>0 ) b where a.blocked=spid) union select spid,blocked from sysprocesses where blocked>0 open s_cur fetch next from s_cur into @spid,@bl while @@fetch_status = 0 begin if @spid =0 select N''引起数死鎖的是:''+ltrim(@bl)+N''进程号,其执SQL语法如下'' else select N''进程号:''+ ltrim(@bl)+N''被''+N''进程号:''+ltrim(@bl)+N''阻塞,其当前进 进程執行的SQL语法如下:'' dbcc inputbuffer (@bl ) fetch next from s_cur into @spid,@bl end close s_cur deallocate s_cur (2.3) 获取连接SQL服务器的信息 if object_id(''p_getlinkinfo'',''P'')is not null drop proc p_getlinkinfo go create proc p_getlinkinfo @dbname sysname=null, --要查詢的數據庫名,默認表示所有 @includeip bit=0 --是否顯示IP信息 as begin declare @dbid int set @dbid=db_id(@dbname) if object_id(''tempdb..#tb'')is not null drop table #tb if object_id(''tempdb..#ip'')is not null drop table #ip create table #tb (id int identity(1,1), dbname sysname, hostname nchar(128), loginname nchar(128), net_address nchar(12), net_ip nvarchar(15), &nbs |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
-
HTTP/1.1 401 Access Denied
关于MSSQL2005 SYS.SYSPROCESSES使用--整理帖的所有评论