转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
判断阻塞发生在某张表上         ★★★★

判断阻塞发生在某张表上

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1411 更新时间:2009/4/22 23:09:42

1. 使用sp_lock进行察看,如果 输出信息 locktype 中包含 -blk 字符,说明当前表 table_id 的 page 上的锁对其他进程造成了阻塞
2. 通过察看 master..syslocks 系统表

id          dbid   page        type   spid   class                          fid    context row    loid
----------- ------ ----------- ------ ------ ------------------------------ ------ ------- ------ -----------
  512004855      6           0      3     13 Non Cursor Lock                     0       0      0          26
  512004855      6           0      4     12 Non Cursor Lock                     0       0      0          24
  512004855      6           0      3     10 Non Cursor Lock                     0       0      0          20
  512004855      6         793    261     13 Non Cursor Lock                     0       8      0          26

从spid可知道当前阻塞及被阻塞的进程,并且从type字段可以知道锁的类型,见下表:
1 0x1 排它表锁
2 0x2 共享表锁
3 0x3 排它意图锁
4 0x4 共享意图锁
5 0x5 排它页锁
6 0x6 共享页锁
7 0x7 更新页锁
8 0x8 排它行锁
9 0x9 共享行锁
10 0xA 更新行锁
11 0xB 共享下一键锁
256 0x100 锁在阻塞另一个进程
512 0x200 请求锁

所以你可以通过下面的查询获得阻塞表信息
select b.name as dbname,a.id as table_id,page,spid from syslocks a,sysdatabases b
where b.dbid = a.dbid
and a.type & 256 = 256

你也可以写成一个存储过程,不过一定要在master中执行。

【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】  liuyucd 回复于:2003-01-29 23:09:21 直接用SP_LOCK不就行了吗?

 cctv 回复于:2003-03-04 13:48:23 这样更好:

1. 使用sp_who进行察看,如果输出信息中blk字段不为0,则表明有点问题,问题与blk对应的值有关系。
fid    spid   status       loginame     origname     hostname   blk   dbname     cmd              
------ ------ ------------ ------------ ------------ ---------- ----- ---------- ---------------- 
......
0      32     recv sleep   c7mon        c7mon        e3500      0     c7db       BULK INSERT 
......
0      37     recv sleep   c7mon        c7mon        e3500      0     c7db       AWAITING COMMAND 
0      38     lock sleep   c7mon        c7mon        e3500      32    c7db       DROP TABLE       
0      40     recv sleep   c7mon        c7mon        e3500      0     c7db       BULK INSERT      

   或:使用sp_lock进行察看,如果 输出信息 locktype 中包含 -blk 字符,说明当前表 table_id 的 page 上的锁对其他进程造
成了阻塞 
fid    spid   locktype                     table_id    page        row    dbname          class                          context                      
------ ------ ---------------------------- ----------- ----------- ------ --------------- ------------------------------ ---------------------------- 
......
0      31     Ex_intent                    1821965567  0           0      c7db            Non Cursor Lock                Fam dur                      
0      32     Ex_intent-blk              1569440665  0           0      c7db            Non Cursor Lock                Fam dur                      
0      33     Ex_intent                    42483230    0           0      c7db            Non Cursor Lock                Fam dur                      

2. 通过察看 master..syslocks 系统表 
例 
id dbid page type spid class fid context row loid 
----------- ------ ----------- ------ ------ ------------------------------ ------ ------- ------ ----------- 
512004855 6 0 3 13 Non Cursor Lock 0 0 0 26 
512004855 6 0 4 12 Non Cursor Lock 0 0 0 24 
512004855 6 0 3 10 Non Cursor Lock 0 0 0 20 
512004855 6 793 261 13 Non Cursor Lock 0 8 0 26 

从spid可知道当前阻塞及被阻塞的进程,并且从type字段可以知道锁的类型,见下表: 
1 0x1 排它表锁 
 2 0x2 共享表锁 
 3 0x3 排它意图锁 
 4 0x4 共享意图锁 
 5 0x5 排它页锁 
 6 0x6 共享页锁 
 7 0x7 更新页锁 
 8 0x8 排它行锁 
 9 0x9 共享行锁 
 10 0xA&nb

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台