当前位置:  开发笔记 > 数据库 > 正文

SQL Server - Dirty Reads Pros&Cons

如何解决《SQLServer-DirtyReadsPros&Cons》经验,为你挑选了2个好方法。

我为什么要或不应该使用脏读:

set transaction isolation level read uncommitted

在SQL Server中?



1> Yaakov Ellis..:

来自MSDN:

设置此选项后,可以读取未提交或脏的数据; 可以更改数据中的值,并且在事务结束之前,行可以在数据集中显示或消失.

简单地说,当您使用此隔离级别,并且作为一个事务的一部分在活动表上执行多个查询时,无法保证在事务的不同部分中返回给您的信息将保持不变.您可以在一个事务中两次查询相同的数据并获得不同的结果(这可能发生在其他用户在您的事务中更新相同数据的情况下).这显然会对依赖数据完整性的应用程序部分产生严重影响.



2> 小智..:

通常,当您需要对繁忙的表执行大量(或频繁)查询时,提交的读取可能会被来自未通信事务的锁阻塞,但只有当您可以处理不准确的数据时.

作为一个例子,在我最近工作的游戏网站上有一些关于最近游戏的一些统计数据的摘要显示,这都是基于脏读,对我们来说更重要的是包括然后排除尚未提交的交易数据(无论如何,我们知道很少(如果有的话)交易会退出),我们觉得平均来说数据会更准确.

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