【问题标题】:What are usual objections to allowing SNAPSHOT level in SQL Server 2008?在 SQL Server 2008 中允许 SNAPSHOT 级别的常见反对意见是什么?
【发布时间】:2012-03-10 12:51:03
【问题描述】:

当开发人员请求 DBA 在 SQL Server 2008 数据库中允许 SNAPSHOT 隔离级别时,DBA 通常会提出哪些反对意见?未请求读取已提交 SNAPSHOT,而只是请求了 SNAPSH 的隔离级别

【问题讨论】:

  • 所有基于快照的隔离级别都使用了TempDB,这通常是 SQL Server 中配置不当、维护不善的部分

标签: sql-server sql-server-2008 isolation-level


【解决方案1】:

我不会说通常会有反对意见。作为一名 DBA,我积极鼓励开发团队让我使用 Read_Committed_Snapshot 隔离级别。事实上,我更喜欢它。正如它在 cmets 中所说,我会看到 tempdb 的使用因此而增加,但阻塞的减少是非常值得的。

我对 SNAPSHOT 的使用并没有那么疯狂,因为通常情况下,我无法向开发人员宣传他们需要更改代码的想法,而他们确实会这样做。此外,因为它完全依赖于开发人员来正确编码它的使用,我看到更多的错误,它不能工作的地方或它产生问题的地方。这就是为什么我宁愿只在数据库中启用隔离级别。

我确信现在已经解决了这个问题,但是几年前我正在处理的一个项目在使用 SNAPSHOT 和 nHibernate 时遇到了问题。我不记得任何细节,只是他们遇到了问题,但那是很久以前的事了。

【讨论】:

  • 今天,我们的 DBA 刚刚给我发邮件说他们通常不允许 SNAPSHOT 隔离级别。我相信他会和我会面。 我可以告诉他什么来说服他允许 SNAPSHOT 隔离级别?
  • 哪个隔离级别?就像我上面所说的,只是通过连接进行快照,我也不喜欢那个,因为它太依赖于所有正确完成的代码。如果是 read_committed_snapshot,找出他反对的原因。通常是对它的工作原理缺乏了解,或者担心增加了 tempdb 的负载。如果是后者,请在调优 tempdb 上进行快速 Bingle 搜索。发布了一些标准的最佳实践,特别是在 Microsoft MSDN 网站上,这将有所帮助。
  • 格兰特,感谢您的回复。我们的 DBA 提出的原因是大约有 100 个数据库在生产中使用,并且很难在 SNAPSHOT 隔离级别或 READ_COMMITTED_SNAPSHOT 开启的情况下管理 tempdb。我希望我能说服他。让我们看看。
  • 管理 tempdb 比处理大量资源争用更容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 2013-05-07
  • 2018-06-08
相关资源
最近更新 更多