WEB开发网
开发学院数据库MSSQL Server 通过SQL Server Profiler来监视分析死锁 阅读

通过SQL Server Profiler来监视分析死锁

 2010-01-18 00:00:00 来源:WEB开发网   
核心提示: 可以到看到EventClass列中,两条SQL:BatchCompleted事件紧跟在Lock:DealLock后面,通过SQL Server Profiler来监视分析死锁(4),其中一条,它就是作为牺牲品,ECID = {0,1,2,3, ...n},其中 0 始终表示主线程或父线程,它会被

可以到看到EventClass列中,两条SQL:BatchCompleted事件紧跟在Lock:DealLock后面,其中一条,它就是作为牺牲品,它会被回滚.而另一条SQL:BatchCompleted将会是优胜者,成功执行。

那么,谁是优胜者,谁是牺牲品呢? 不用着急,通过DealLock graph事件,所返回来的信息,我们可以知道结果。

通过SQL Server Profiler来监视分析死锁 

我们虽然不能明白DealLock graph图示的含义,但通过图中描述的关系,我们知道一些有用的信息。图中左右两旁椭圆形相当一个处理节点(Process Node),当鼠标移动到上面的时候,可以看到内部执行的代码,如Insert,UPdate,Delete.有打叉的左边椭圆形就是牺牲者,没有打叉的右边椭圆形是优胜者。中间两个长方形就是一个资源节点(Resource Node),描述数据库中的对象,如一个表、一行或一个索引。在我们当前的实例中,资源节点描述的是,在聚集索引请求获得排它锁(X)。椭圆形与长方形之间,带箭头的连线表示,处理节点与资源节点的关系,包含描述锁的模式.

接下来我们更详细的看图里面的数据说明。

先看右边作为优胜者的这椭圆形,我们可以看到内容包含有:

服务器进程 ID: 服务器进程标识符 (SPID),即服务器给拥有锁的进程分配的标识符。

服务器批 ID: 服务器批标识符 (SBID)。

执行上下文 ID: 执行上下文标识符 (ECID)。与指定 SPID 相关联的给定线程的执行上下文 ID。ECID = {0,1,2,3, ...n},其中 0 始终表示主线程或父线程,并且 {1,2,3, ...n} 表示子线程。

上一页  1 2 3 4 5 6  下一页

Tags:通过 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接