我目前正在开发一个应用程序,该应用程序不断查询数据库以获取要显示的实时数据。
为了对正在写入数据库的系统产生最小的影响,这对业务操作至关重要,我直接连接到可用性组中的只读副本(使用只读副本服务器名称而不是只读路由通过Always On 监听器,通过applicationintent=readonly
)。即使这样做,我们也注意到将数据插入主服务器的响应时间增加了。
据我对次要副本的理解,情况并非如此。我NOLOCK
也在查询中使用提示。我对此感到非常困惑,并且不太了解导致响应时间增加的原因。到目前为止,我所想到的是,无论NOLOCK
提示如何,SQL 都会锁定我正在读取的表并阻止同步复制到只读副本,这反过来又锁定了主实例表,该表正在阻止插入查询。
是这种情况还是我对 Always on 只读副本不太了解?