• sql server锁检测


    有时候系统运行老感觉效率不高,并且有时候sql还有超时的报错,但是并发量并不高。通过排查定位sql是否有执行效率问题

    -- 开事务, 以保持锁
    BEGIN TRAN
    
    -- 更新
    update table a 
    set column1 = 1 
    where idx = 1
    
    -- 列出锁信息
    EXEC sp_lock @@spid
    
    -- 提交或者回滚事务
    COMMIT/ROLLBACK TRAN

    通过执行sp_lock存储过程,查看锁信息(类似如下)

    spid dbid ObjId IndId Type Resource Mode Status
    52 8 0 0 DB                                  S GRANT
    52 1 1.12E+09 0 TAB                                  IS GRANT
    52 8 9.18E+08 1 PAG 1:425705                         IX GRANT
    52 8 9.18E+08 0 TAB                                  IX GRANT
    52 8 9.18E+08 1 KEY -1E+10 X GRANT

    通过 dbid, ObjId 可以找到你更新的表相关的锁记录
    如果 IndId 为 0 , 表示锁在表上, 否则在对应的索引上
    通过 Type 列, 可以确定被锁定的是行/表, 或者是其他, 并且可以通过 Mode 看到是什么锁
    在Status 中, 还可以看到锁是已经加上了, 还是在等待其他资源释放(以取得加锁的权利)

    spid   dbid   ObjId       IndId  Type Resource                   Mode     Status
    ------ ------ ----------- ------ ---- -------------------------- -------- ------
    53     1      1115151018  0      TAB                             IS       GRANT

    锁的类型(Tyep 列值, RID 和 KEY 的话, 表示锁在行上) 有如下几种:
    RID = 表中单个行的锁,由行标识符 (RID) 标识。
    KEY = 索引内保护可串行事务中一系列键的锁。
    PAG = 数据页或索引页的锁。
    EXT = 对某区的锁。
    TAB = 整个表(包括所有数据和索引)的锁。
    DB = 数据库的锁。
    FIL = 数据库文件的锁。
    APP = 指定的应用程序资源的锁。
    MD = 元数据或目录信息的锁。
    HBT = 堆或 B 树索引的锁。在 SQL Server 2005 中此信息不完整。
    AU = 分配单元的锁。在 SQL Server 2005 中此信息不完整。

    显示的结果无法知道是哪个对象,可以使用下面的语句来查看
    Select * From sysdatabases where dbid=[dbid]   --数据库
    Select * from sysobjects where id=[ObjId]      --表或其他对象
    Select * from sysindexes where id=[IndId]      --索引
    --此处[]内为表中对应列的值

  • 相关阅读:
    Building Java Projects with Gradle
    Vert.x简介
    Spring及Spring Boot 国内快速开发框架
    dip vs di vs ioc
    Tools (StExBar vs Cmder)which can switch to command line window on context menu in windows OS
    SSO的定义、原理、组件及应用
    ModSecurity is an open source, cross-platform web application firewall (WAF) module.
    TDD中测试替身学习总结
    Spring事务银行转账示例
    台式机(华硕主板)前面板音频接口(耳机和麦克风)均无声的解决办法
  • 原文地址:https://www.cnblogs.com/jiangzhichao/p/4235790.html
Copyright © 2020-2023  润新知