赞
踩
问题:sqlserver默认不开启快照隔离,导致更新一条数据未提交时,会锁住整个表,导致其他进程无法查询该表其他数据。
解决:打开快照隔离,其他进程读取该表数据时会读取快照既更新之前的数据。
设置方式:
设置数据库为SINGLE_USER模式,减少锁定时间
----立刻设置数据库为单用户模式
ALTER DATABASE dbname SET SINGLE_USER WITH ROLLBACK IMMEDIATE
----开启数据库快照隔离
ALTER DATABASE dbname SET ALLOW_SNAPSHOT_ISOLATION ON
----开启可读已提交的快照
ALTER DATABASE dbname SET READ_COMMITTED_SNAPSHOT ON
----设置数据库为多用户模式
ALTER DATABASE dbname SET MULTI_USER
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。