首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >READ_COMMITTED_SNAPSHOT ON和ALLOW_SNAPSHOT_ISOLATION ON

READ_COMMITTED_SNAPSHOT ON和ALLOW_SNAPSHOT_ISOLATION ON
EN

Database Administration用户
提问于 2016-12-20 16:37:51
回答 1查看 663关注 0票数 2

我继承了托管Hyperion数据库的Server 2012实例。我相信Hyperion技术配置了这个系统,他们同时拥有READ_COMMITTED_SNAPSHOT ONALLOW_SNAPSHOT_ISOLATION ON。这对我来说毫无意义。说得通吗?

另外,我看到60%-70%的等待是Lock_M_X,这比我见过的要高得多。想知道这是否与上述情况有关。

我已经在一个表中运行了1分钟的sp_whoisactive快照,并且无法捕获一个X类型的锁。出现了合理数量的S型锁。

有什么建议吗?

EN

回答 1

Database Administration用户

发布于 2016-12-20 16:45:16

从先前的回答来看:

如果使用ALLOW_SNAPSHOT_ISOLATION,请确保在代码中使用SET TRANSACTION ISOLATION LEVEL SNAPSHOT,否则将得不到任何好处。如果您设置了SET READ_COMMITTED_SNAPSHOT ON,那么就没有必要修改任何代码。MS SQL Server自动为该表应用快照隔离。

基本上,仅使用ALLOW_SNAPSHOT_ISOLAION,仍然必须在query/SP中指定隔离级别,以使其使用该隔离级别。

READ_COMMITTED_SNAPSHOT设置为ON时,DB将自动处于该模式,因此不需要修改查询。

允许_快照_隔离与读取_已承诺_快照

在我上面链接到的答案中,有一个链接指向Kim关于快照隔离的视频。这是纯金。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/158717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档