zoukankan      html  css  js  c++  java
  • SQL2005的锁定与交易隔离级别

    交易的隔离级别:当激活交易时,控制交易内因SQL语句产生的锁定有久,影响范围有多大。以防止多人访问时,在交易内发生数据查询的错误。设置的交易隔离级别将影响整条连接。

     

    SQLSERVER交易的隔离级别:读取未认可(Read Uncommitted)、读取认可(Read Committed)、可重复读取(Repeatable Read)、快照、可串行化

     

    设置语句:set transaction isolation level read committed

     

    读取未认可

     

    读取未认可为最低的交易隔离级别,查询时不放置共享锁就直接读取,所以,忽悠已存在的锁定。能加快查询速度,但会读到别人正在更新的数据。

     

    测试数据:

    新建一个连接,执行下面的sql语句,因为没有commit,rollback查询@@trancoun等于1,任有交易

    use Northwind

    go

    create table TransactionTest

    (

         id int,

         name varchar(50)

    )

     

    go

    insert into TransactionTest values(1,'liuyu')

    insert into TransactionTest values(2,'testname')

    go

    begin tran

    update TransactionTest set name='updated' where id=2

    select @@trancount

     

    再新建一个连接,执行下面sql语句,

    set transaction isolation level read uncommitted

    select * from TransactionTest where id=2

     

    查询结果

     

     

    读取认可

     

    读取认可是SQLSERER的默认隔离级别。当交易正在执行时读取数据时,数据库会设置共享锁防止其他交易修改数据。当读取完成时,自动释放共享锁定,其他交易就可修改数据。

    当未启用数据行控制版本时,会锁定整张表。数据行控制版本默认为关闭。开启的脚本如下

    alter database Northwind set READ_COMMITTED_SNAPSHOT on

    开启后,查询数据不会锁定,数据为交易前已认可的数据

     

     

    测试数据

    use Northwind

    go

    create table TransactionTest

    (

         id int,

         name varchar(50)

    )

     

    go

    insert into TransactionTest values(1,'liuyu')

    insert into TransactionTest values(2,'testname')

    go

    begin tran

    update TransactionTest set name='updated' where id=2

    select @@trancount

     

    再新建一个连接,执行下面sql语句,

    set transaction isolation level read committed

    select * from TransactionTest where id=2

    查询结果:查不出数据,因为锁定

     

  • 相关阅读:
    执行一个外部程序并等待他的结束
    打开WORD文档时提示“word无法启动转换器mswrd632 wpc”的解决方法
    WaitForSingleObject的用法
    Delphi CreateProcess WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件
    webservices传base64字串
    webservices传文件
    webservices 字节数组 Base64编码
    内存映射大文件
    文件分割合并
    move
  • 原文地址:https://www.cnblogs.com/50614090/p/2985757.html
Copyright © 2011-2022 走看看