MSDN 描述其 OLEDB 提供程序的 JET 事务隔离,如下所示:
Jet支持事务中的五级嵌套。事务唯一支持的模式是提交读取。设置较低级别的事务分离意味着提交读取。设置更高的级别将导致StartTransaction失败。
Jet仅支持单相提交。
MSDN对读取提交
的描述如下:
指定读取数据时保持共享锁,以避免脏读,但可以在事务结束前更改数据,从而导致不可重复读取或幻像数据。此选项是SQL服务器默认值。
我的问题是:
>
什么是单阶段提交?这对事务和隔离有什么后果?
上述“已提交读取”隔离级别是否适合我在此处的要求?
按问题编号:
>
当您的所有数据都在一个数据库中时,使用单阶段提交——事务的活动以原子方式提交,您就完成了。如果您有一个逻辑事务需要跨多个存储引擎(如元数据的关系数据库和大blob的某种文档存储),那么您可以使用事务管理器来协调活动,以便在两种产品都支持两个阶段提交的情况下,将工作持久化,或者两者都不持久化。他们只是告诉你,他们不支持两阶段提交,因此该产品不适合分布式事务。
是的,如果您检查UPDATE
语句本身中的条件;否则你可能会有问题。
他们似乎在暗示你不能。
说句题外话,我做了几十年的顾问,在许多不同的环境中工作过。我不止一次因为性能问题而从Jet迁移人员。在一个案例中,一个简单的“星型”查询运行了两分钟,因为它是在客户端上连接,而不是让数据库来执行。作为对数据库的直接查询,它是亚秒级的。在另一个案例中,有一个报告在Jet中运行需要72小时,而在直接对数据库运行时需要2分钟。如果它通常对你有效,你也许可以通过使用Jet导致性能下降的存储过程来处理这种情况。
我正在尝试用Connector/J和MySql构建一个Java(JDK1.8)应用程序。有人告诉我,Serializable是最高级别,但它会影响性能,所以Serializable并不常用。 但是考虑一下这种情况: 有两个提交将更新同一行的字段(提交A和提交B)。如果A和B同时发生,并且隔离级别不可序列化,则会出现数据竞争,这会导致字段不一致。但在可序列化级别,这两个更新不会同时发生,因此A发生在
本文向大家介绍说一下 spring 的事务隔离?相关面试题,主要包含被问及说一下 spring 的事务隔离?时的应答技巧和注意事项,需要的朋友参考一下 spring 有五大隔离级别,默认值为 ISOLATION_DEFAULT(使用数据库的设置),其他四个隔离级别和数据库的隔离级别一致: ISOLATION_DEFAULT:用底层数据库的设置隔离级别,数据库设置的是什么我就用什么; ISOLATI
本文向大家介绍事务的隔离级别有哪些?相关面试题,主要包含被问及事务的隔离级别有哪些?时的应答技巧和注意事项,需要的朋友参考一下 SQL 标准定义了四个隔离级别: READ-UNCOMMITTED(读取未提交): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。 READ-COMMITTED(读取已提交): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重
本文向大家介绍说一下数据库的事务隔离?相关面试题,主要包含被问及说一下数据库的事务隔离?时的应答技巧和注意事项,需要的朋友参考一下 MySQL 的事务隔离是在 MySQL. ini 配置文件里添加的,在文件的最后添加: transaction-isolation = REPEATABLE-READ 1 可用的配置值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABL
本文向大家介绍MySQL的默认事务隔离级别是?相关面试题,主要包含被问及MySQL的默认事务隔离级别是?时的应答技巧和注意事项,需要的朋友参考一下 读未提交(RU): 一个事务还没提交时, 它做的变更就能被别的事务看到. 读提交(RC): 一个事务提交之后, 它做的变更才会被其他事务看到. 可重复读(RR): 一个事务执行过程中看到的数据, 总是跟这个事务在启动时看到的数据是一致的. 当然在可重复
我有一个对具有 SQL API 的 Cosmos 容器的长期运行查询,该查询需要 10 分钟以上才能完成。有没有办法将数据库的隔离级别设置为“可重复读取”或“可序列化”,以避免幻像读取,如这里所定义的那样? 我知道我们可以为 Cosmos DB 设置一致性级别,但它仅适用于地质副本之间的读/写一致性,而不适用于事务隔离。