首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JET中的事务隔离?

JET中的事务隔离?
EN

Stack Overflow用户
提问于 2012-08-18 01:06:35
回答 1查看 792关注 0票数 2

MSDN将其OLEDB提供程序的JET事务隔离描述如下:

Jet支持事务中的五个嵌套级别。对事务的唯一支持模式是提交。设置较小级别的事务分离意味着已提交读取。设置更高的级别将导致StartTransaction失败。 Jet只支持单相提交。

MSDNRead Committed的描述如下:

指定在读取数据时持有共享锁,以避免脏读,但可以在事务结束前更改数据,从而导致不可重复的读取或幻影数据。此选项是Server的默认选项。

我的问题是:

  1. 什么是单相提交?这对事务和隔离有什么影响?
  2. 上面描述的读提交隔离级别是否适合我的需求这里
  3. 使用Jet实现可序列化事务隔离的最佳方法是什么?
EN

回答 1

Stack Overflow用户

发布于 2012-08-18 12:36:23

按问题编号:

  1. 单阶段提交用于将所有数据都放在一个数据库中--事务的活动是原子地提交的,并且您已经完成了。如果您有一个逻辑事务,需要跨多个存储引擎(比如元数据的关系数据库和大型blob的某种文档存储)传播,那么您可以使用事务管理器来协调活动,这样如果两个产品都支持两阶段提交,工作就会在这两种情况下持续进行,或者两者都不存在。他们只是告诉您,他们不支持两阶段提交,因此该产品不适合于分布式事务。
  2. 是的,如果您检查UPDATE语句本身中的条件,否则可能会出现问题。
  3. 他们似乎在暗示你不能。

顺便说一句,我在许多不同的环境中做了几十年的顾问。因为性能问题,我不止一次订婚要把人从喷气机转移出去。在一种情况下,一个简单的“星型”查询运行了两分钟,因为它加入了客户端,而不是让数据库执行它。作为对数据库的直接查询,它是子秒。在另一个案例中,有一份报告花了72小时才通过Jet,当直接针对数据库运行时,该报告花费了2分钟。如果它通常对您有效,您可能可以通过使用Jet造成性能损失的存储过程来处理这种情况。

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

https://stackoverflow.com/questions/12014966

复制
相关文章

相似问题

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