在已提交的读取事务中执行单选查询与可重复读取事务中执行单选查询有什么区别



这个问题是从重构函数中衍生出来的,因此它们可以在 CTE 中使用。

问题很简单:在READ COMMITTED中执行SELECT查询与REPEATABLE READ事务有什么不同吗?我们假设事务中没有其他查询(甚至是"SELECT"查询(。因此,事务只执行一个SELECT查询。

通常单个

SELECT语句不会有区别。

例外情况是,如果 SELECT 语句调用用户定义的函数,这些函数本身发出多个 SQL 语句。

在这种情况下,REPEATABLE READ将使所有这些 SQL 语句共享数据库的单个快照,而READ COMMITTED将导致每个 SQL 语句看到数据库的不同状态。

最新更新