首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion 8执行cfquery、事务和脏读

ColdFusion 8执行cfquery、事务和脏读
EN

Stack Overflow用户
提问于 2012-06-02 02:28:39
回答 2查看 1.1K关注 0票数 4

在使用MSSQL8和ColdFusion进行跟踪时,我的数据库管理员注意到cfquery调用被附加了SET TRANSACTION ISOLATION LEVEL READ COMMITTED,而这并不在查询本身中。出于性能原因,他建议将其删除或更改为未提交。

这是ColdFusion在ColdFusion和/或MSSQL中默认添加的东西吗?

我正在使用ColdFusion的默认MSSQL驱动程序,并且我能够通过在每个cfquery中使用<cftransaction isolation="read_uncommitted">标记来临时更改。

有没有其他方法可以阻止它被添加到ColdFusion中,或者cftransaction是最好的方法吗?

最后一个问题,当使用isolation="read_uncommitted"时,为什么要在查询之前添加SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED而不是在查询之后添加SET TRANSACTION ISOLATION LEVEL READ COMMITTED

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-02 02:56:00

Committed是对未指定隔离级别的数据库的任何查询的默认隔离级别。您在执行期间更改了它,然后它又恢复为“已提交”。语句的创建是CF和JDBC驱动程序协同工作的“幕后”工作的一部分。使用"read_uncommitted“更快,因为它不会阻止任何其他连接或查询更改或读取数据。因此,它提供了“脏读”的可能性(您正在读取未提交的数据,因此可能是不正确的数据),但在许多情况下,这不是什么大问题,所以您的DBA可能是正确的。

票数 2
EN

Stack Overflow用户

发布于 2014-03-18 23:55:13

这是不正确的解释,read_committed是一个“隔离”问题,如果某个其他任务为update/insert/delete打开了表,则处于“read_committed”中的事务将被保留,等待从表中释放锁,直到事务提交。如果事务设置为'read_uncommitted‘,它将直接从现有数据读取,而不等待挂起的update/insert/delete。因此出现了“Dirty”这个术语,意思是任何挂起的、未提交的都不会被返回,但也不会被锁定和延迟。

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

https://stackoverflow.com/questions/10855537

复制
相关文章

相似问题

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