zoukankan      html  css  js  c++  java
  • 一些锁的示例

     

    use userDatabase
    go
    if exists(select 1 from sys.tables where name='t')
        
    drop table t
    create table t(c1 int,c2 int)
    create index index1 on t(c1)
    insert into t values(1,1)

    --UPDATE lock

    set transaction isolation level repeatable read
    begin tran
    update t set c2=6 where c1=1
    select resource_type,resource_description,resource_associated_entity_id,request_mode,request_type,request_status  
    from sys.dm_tran_locks where request_session_id=@@spid   order by resource_type
    rollback
    go

    --SIX

    set transaction isolation level repeatable read 
    begin tran 
    select *from t with (paglock) 
    update t set c2=6 where c1=1 
    select resource_type,resource_description,resource_associated_entity_id,request_mode,request_type,request_status 
    from sys.dm_tran_locks where request_session_id=@@spid order by resource_type 
    rollback 
    go 

    --SIU

     

    set transaction isolation level repeatable read 
    begin tran 
    select *from t with (paglock,index=index1) 
    update t set c2=6 where c1=1 
    select resource_type,resource_description,resource_associated_entity_id,request_mode,request_type,request_status 
    from sys.dm_tran_locks where request_session_id=@@spid order by resource_type 
    rollback 
    go

    --1:167为索引页,1:165为数据页

     

    --UIX

    set transaction isolation level repeatable read 
    begin tran 
    update t with(paglock) set c2=6 where c1=1 
    update t set c1=6 where c1=1 
    select resource_type,resource_description,resource_associated_entity_id,request_mode,request_type,request_status 
    from sys.dm_tran_locks where request_session_id=@@spid order by resource_type 
    rollback 
    go 

    Request_status

    create table ##session(sessionID int

    WAIT

    Time

    Transaction 1

      

    Transaction 2

    1

     set transaction isolation level  read committed

      

    set transaction isolation level  read committed

    2

      

      

    Begin tran

    3

    Delete from ##session

    go

    insert into ##session values(@@SPID)

    go

      

     update t set c2=6 where c1=1

    4

    select *from t

       

    5

       

    select resource_type,resource_description,resource_associated_entity_id,request_mode,request_type,request_status

    from sys.dm_tran_locks where request_session_id in (select sessionID from ##session)

    6

      

      

    rollback

       

    CONVERT

    Time

    Transaction 1

      

    Transaction 2

    1

     set transaction isolation level  read committed

      

    set transaction isolation level repeatable read

    2

      

      

    Begin tran

    3

    Delete from ##session

    go

    insert into ##session values(@@SPID)

      

     select *from t

    4

    update t set c2=6 where c1=1

       

    5

       

    select resource_type,resource_description,resource_associated_entity_id,request_mode,request_type,request_status

    from sys.dm_tran_locks where request_session_id in (select sessionID from ##session)

    6

      

      

    rollback

  • 相关阅读:
    1040 最大公约数之和(欧拉函数)
    1028 大数乘法 V2(FFT or py)
    1020 逆序排列(DP)
    1837 砝码称重
    1070 Bash游戏 V4
    1280 前缀后缀集合(map)
    1390 游戏得分(贪心)
    1179 最大的最大公约数
    1400 序列分解(dfs)
    1420 数袋鼠好有趣(贪心二分)
  • 原文地址:https://www.cnblogs.com/stswordman/p/1370269.html
Copyright © 2011-2022 走看看