zoukankan      html  css  js  c++  java
  • SQL SERVER 死锁

     sp_lock

    查看锁表名称

    select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName
    from sys.dm_tran_locks where resource_type='OBJECT'

    spid 锁表进程
    tableName 被锁表名

    解锁:
    kill  spid

    DBCC INPUTBUFFER(spid)  --查看改进程的sql 语句

    blocked为0的是引起死锁的,blocked不为0的是被等待的进程,等待释放资源的才继续执行。等待资源。waitResource

    SELECT
        spid,
        blocked,
        DB_NAME(sp.dbid) AS DBName,
        program_name,
        waitresource,
        lastwaittype,
        sp.loginame,
        sp.hostname,
        a.[Text] AS [TextData],
        SUBSTRING (
            A. TEXT,
            sp.stmt_start / 2,
            (
                CASE WHEN sp.stmt_end = - 1 THEN DATALENGTH (A. TEXT) ELSE sp.stmt_end END - sp.stmt_start
            ) / 2
        ) AS [current_cmd] 
        FROM sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A 
        WHERE spid > 50 and  spid in(  select request_session_id spid 
    from sys.dm_tran_locks where resource_type='OBJECT')
        ORDER BY blocked DESC,
        DB_NAME(sp.dbid) ASC,
        a.[text]

    --查看锁抢夺资源
    sp_lock


    例如A进程(锁住资源未提交未完成)

    begin tran
    update c_FeeType  set DM=dm

    B进程(等待)

    select * from c_FeeType

    SELECT * FROM SYS.partitions WHERE hobt_id=72057594050445312
    SELECT * FROM r_register where %%lockres%% = '(a791659675d9)'
     
     
    fdquery selct*from  没有FetcheALL,其他进程update时抢不到资源,锁住了。
     
     
  • 相关阅读:
    [bzoj1613 Usaco2007 Jan]Running贝茜的晨练计划
    [bzoj1600][Usaco2008 Oct]建造栅栏
    [bzoj3208]花神的秒题计划I
    [vijos1011]滑雪
    [noip2007 pjt3] 守望者的逃离
    DP(1) 背包
    快速幂 模板及应用
    BZOJ1303: [CQOI2009]中位数图
    BZOJ1083: [SCOI2005]繁忙的都市
    Bzoj1084: [SCOI2005]最大子矩阵
  • 原文地址:https://www.cnblogs.com/cb168/p/10324229.html
Copyright © 2011-2022 走看看