Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 查询只读副本时对主实例的性能影响_Performance_Sql Server 2012_Replication_Response Time_Alwayson - Fatal编程技术网

Performance 查询只读副本时对主实例的性能影响

Performance 查询只读副本时对主实例的性能影响,performance,sql-server-2012,replication,response-time,alwayson,Performance,Sql Server 2012,Replication,Response Time,Alwayson,我目前正在开发一个应用程序,该应用程序可以连续查询数据库,以获取要显示的实时数据 为了对写入数据库的系统(这对业务操作至关重要)产生最小的影响,我直接连接到可用性组中的只读副本(通过applicationcontent=readonly,使用只读副本服务器名称,而不是通过始终打开的侦听器进行只读路由)。 即使这样做,我们也注意到向主服务器插入数据时响应时间的增加 据我对二级副本的理解,情况不应该是这样。我在查询中也使用了NOLOCK提示。我对此感到非常困惑,不太明白是什么导致响应时间增加。到目前

我目前正在开发一个应用程序,该应用程序可以连续查询数据库,以获取要显示的实时数据

为了对写入数据库的系统(这对业务操作至关重要)产生最小的影响,我直接连接到可用性组中的只读副本(通过
applicationcontent=readonly
,使用只读副本服务器名称,而不是通过始终打开的侦听器进行只读路由)。 即使这样做,我们也注意到向主服务器插入数据时响应时间的增加

据我对二级副本的理解,情况不应该是这样。我在查询中也使用了
NOLOCK
提示。我对此感到非常困惑,不太明白是什么导致响应时间增加。到目前为止,我所想到的是,不管
NOLOCK
提示如何,SQL都会锁定我所在的表从只读复制副本读取并阻止同步复制到只读复制副本,这反过来又会锁定主实例表,从而阻止插入查询

是这种情况,还是关于始终处于只读状态的副本有什么我不太了解的地方?

我找到了一份我认为最能描述主服务器上响应时间增加的可能原因的文档

一般来说,对于那些希望使用AlwaysOn Availability group在主副本和辅助副本之间分配负载的人来说,这是一本不错的书

对于那些不想阅读整个文件的人,它教会了我以下几点(用我自己的粗话): 虽然不太可能,但次副本上运行的工作负载可能会影响发送事务已提交确认(复制到次副本)所需的时间。使用同步提交模式时,主副本在提交正在运行的事务之前等待此确认(例如插入)。因此,辅助副本确认时间的增加会导致主副本在插入时花费更长的时间


不过,在文档的“对主要工作负载的影响”一节中对其进行了更好的解释。同样,如果您想了解更多信息,我建议您阅读。

。影响包括:脏读、丢失行、读取行两次、读取同一行的多个版本、索引损坏、读取错误……这是由于程序的性质造成的我们决定加入NOLOCK,因为我们不能冒险在写入数据库的主应用程序上造成任何延迟。在正常情况下,我不会这样做。不过感谢您的建议:)您正在同步模式下运行,如果我读对了,那么问题是网络带宽不足?因此解决方案是切换到异步模式,或者提供具有足够带宽的更好的网络连接?我正在考虑改进目前从表中读取的方式。存储所需的所有信息在数据表中,然后在C#sharp端对其进行处理,以减少SQL端的处理。DBA不希望使用异步模式,因为在发生故障转移时,他无法承受任何数据丢失。不过,我将与他讨论带宽问题,感谢您的建议。:)不客气。这是所有有趣的东西,所以感谢你挖掘这些信息。别忘了检查你的答案作为解决方案。