首页 > 开发 > 综合 > 正文

Sql2008R2的一个补丁BUG-大家使用时请注意

2024-07-21 02:49:24
字体:
来源:转载
供稿:网友
Sql2008R2的一个补丁BUG-大家使用时请注意

我们都知道Sqlserver为了提高并发,允许乐观隔离级别(读提交快照,快照)以便读与写之间不阻塞.这里有一个在Sqlserver2008R2 SP2 的热补丁(CU11)下RCSI(读提交快照)隔离级别下的异常.希望大家注意.

这里我通过实例给大家呈现.

Code 测试数据 (Sql2008R2 sp2 cu11)

create database testbugselect @@VERSION --Microsoft SQL Server 2008 R2 (SP2) - 10.50.4302.0 (Intel X86) use testbuggocreate table testbug(id int identity(1,1) PRimary key,str1 char(10))insert into testbug select 'aa'go 10000 ALTER DATABASE testbugSET READ_COMMITTED_SNAPSHOT ONwith rollback immediate-------------修改库隔离级别为RCSI

开启session 1,显式事务update

begin tran tttupdate testbug set str1='cc'

开启session 2,select 将被阻塞.

select * from testbug ---将被阻塞

出乎意料,不是说好的乐观隔离级别下读与写不阻塞吗??

原因分析

我们从DMV sys.dm_tran_locks中查看具体阻塞情况如图1-1

select * from sys.dm_tran_locks 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表