isolation-level

    0热度

    1回答

    我一直认为在单个事务中没有隔离。 例如,如果我有2种方法M1和M2,在M1数据库更新X和M2选择X或含X. 如果两个方法属于同一事务和M2被M1后执行的一组: M2总是看到M1更新任何类型的操作,RDBMS或隔离级别是? 如果没有,有人可以在细节根据相关标准

    1热度

    3回答

    我在学习SQL服务器中的事务隔离级别时遇到了问题。 的问题是,当我运行这段代码(和它完成没有错误): set implicit_transactions off; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRAN T1; SELECT (...) WAITFOR DELAY '00:00:5' SELECT (...) W

    0热度

    1回答

    我有在MySQL数据库InnoDB引擎(评论)的表,我有以下情形: 有两个用户试图在同一访问相同的意见表时间如下: USER1: INSERT INTO comments (comment) VALUES ('HELLO WORLD'); 用户2: SELECT * FROM comments; 我要澄清以下几点,请: 用户2无法从表中读取(SELECT),应该等待一段时间(我认为,直到用

    0热度

    2回答

    假设我有一个用isolation.SERIALIZABLE注释的方法;并且这段代码在集群上的不同节点上被调用。隔离级别是否仅适用于单个会话?还是它实际上影响所有客户?我的猜测是它跨越会话(节点),但想获得一些反馈。 除了问题的陈述(如上下文): 假设的方法都添加了isolation.SERIALIZABLE并执行以下操作: Read from table A Based on the data

    0热度

    1回答

    我怀疑我不完全理解发生了什么或发生了一些奇怪的事情。 (第一种情况的可能性更大,我猜。) 大图片: 我想有一个Web服务执行某些操作异步,因为他们可能会非常耗时,我不希望客户端等待操作完成(只需查询结果就可以看到操作完成)。 异步代码被封装在一个事务中 - 万一出现问题,我希望能够回滚任何更改。 不幸的是,异步代码的最后一步是调用查询同一数据库的不同服务。 尽管在Snapshot事务中包装整个事件

    0热度

    1回答

    作为每read committed isolation level on wiki 读致力于 在该隔离电平,基于锁的并发控制DBMS执行保持写锁(在选定数据中获取),直到事务结束, 但读锁被只要SELECT操作被执行 按照上面的语句,它看起来像,每当任何更新语句是exceute是否释放其对整个表(codesnippet 1)或选定的范围(codesnippet 2), READ C ommitte

    2热度

    1回答

    我对以下情况感到困惑:当超出访问表中某些行数时,发出范围锁意外停止。 简要说明:有一个独特的聚簇索引表;除了PK表包含不唯一的列。我们试图从该表中选择具有可序列化的所有值(它不会发生可重复读取IL)的隔离级别。一切都按预期进行(如msdn所说:持有的RangeS-S锁的数量是n + 1,其中n是满足查询的行数),直到超过某些行数限制。 我认为这将是更好的例子提供代码: if (exists (se

    3热度

    1回答

    我没有看到如何在不锁定整个表格的情况下实现可序列化的隔离级别 - 这似乎是可能的,因为我可以找到有关该主题的所有材料,并讨论行和范围锁定。 我在讨论可序列化和Sql Server的快照隔离级别here时发现了一个有趣的例子。 这个例子是关于有两个弹珠,一个黑色,一个白色和两个交易,它们同时将所有黑色大理石变成白色,反之亦然。我的问题是:可序列化的隔离级别如何防止最终结果再次是一个白色和一个黑色大理

    0热度

    2回答

    我开始与SqlConnection.BeginTransaction()进行交易,并执行DELETE和一些INSERT s。在隔离级别上我可以进行任何配置,以允许任何查询在事务过程中以“脏方式”读取数据? 基本上我想防止锁定,而我更新数据。问题是;我无法控制SELECT。如果我在事务中定义了一个ReadUncommited隔离级别,外部查询是否有权在不等待的情况下读取数据,或者是否需要在此查询上定

    0热度

    1回答

    我有一段很长的代码,我在Spring事务中执行。我现在只想要一小部分代码以不同的隔离级别执行。如果我打电话: transactionTemplate.setIsolationLevel(Isolation.SERIALIZABLE.value()); 这小部分前右将在实现我的目标还是必须设置隔离级别,然后创建一个新的事务?