sql-server - 在同步提交模式下使用只读副本,查询是否有可能在辅助节点上获得与主节点不同的结果?
问题描述
我正在使用具有主服务器和辅助副本的简单可用性组。它们的配置如下:
在某些情况下,我将使用如下查询将一行插入到主表 A 中:
INSERT INTO TableA(UniqueId, Column1)
SELECT 123, Column2
FROM @TVP
之后,我立即使用只读连接查询 TableA 中的值。
SELECT Column1
FROM TableA
WHERE UniqueId = 123
有时在进行此查询时,我们不会返回任何行。我认为这是因为只读副本尚未从主副本获取数据,但我认为插入查询不会返回,直到数据被硬化到辅助副本。
这里发生了什么?
解决方案
使用同步 AG 副本,当INSERT
事务提交时,主节点和辅助节点上的提交都会得到加强。但是,在辅助节点上的重做线程应用更改之前,这些更改不会在辅助节点上可见。延迟通常很短,但可能会由于辅助节点上的高资源利用率阻塞而延迟。
有关详细信息,请参阅文档中的数据延迟主题。
推荐阅读
- python - 如何在正则表达式中使用正则表达式变量?
- spring - springfox - Swagger2Controller:找不到组默认值的规范
- python - 向 Bigquery API 提交具有 > 和 < 符号的查询时遇到问题
- c - 如何同步调用shell命令?
- java - 在java中复制引用相同对象的对象
- php - 在 PhpStorm 中调试 CLI PHP 脚本,无法建立与 Xdebug 2.6.0 的连接
- python - 使用烧瓶、gunicorn、docker 和 azure 处理套接字错误请求
- reactjs - reactjs中如何将对象转换为字符串
- excel - 如何利用右键功能选择表格中的多个单元格进行计算?
- java - 如何使用 Streamingout 返回 206 响应