当前位置:  开发笔记 > 编程语言 > 正文

Sql 2005锁定OLTP - 已提交还是未提交?

如何解决《Sql2005锁定OLTP-已提交还是未提交?》经验,为你挑选了1个好方法。

我公司聘请解决死锁问题的DBA告诉我,如果我们将事务级别设置为READ UNCOMMITTED的READ COMMITTED,那么我们的OLTP数据库锁定问题将会得到改善.

这不仅仅是100%错误吗?READ COMMITTED会导致更多的锁,对吗?


更多细节:

我们的数据非常"孤立"和用户特定.所有用户交互的99.9999999%与您自己的数据一起使用,如果它们发生,我们的脏读方案几乎不会影响用户尝试做的事情.


感谢所有的答案,有问题的dba最终没用,我们通过添加单个索引来修复锁定问题.


我很遗憾没有指定更新语句发生的锁定问题而不是常规选择.从我的googing,两个不同的查询类型在处理锁定问题时有不同的解决方案.



1> John Sansom..:

这听起来像是一个轻率的决定,但是如果没有环境的所有细节,很难说.

您应该建议您的DBA考虑使用SQL Server的高级隔离功能,即使用行版本控制技术.这是在SQL Server 2005中引入的,专门解决了经历高锁定的OLTP数据库问题.

以下白皮书包含相当复杂的主题,但它是所有特殊DBA必读的内容.它包括如何在不同类型的环境中使用每个附加隔离级别的示例,即OLTP,卸载报告环境等.

http://msdn.microsoft.com/en-us/library/ms345124.aspx

总而言之,修改所有T-SQL查询的事务隔离将是愚蠢和鲁莽,而不首先深入了解如何在您的环境中发生过度锁定.

我希望这会有所帮助,但如果您需要进一步澄清,请告诉我.

干杯!

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有