我一直在读关于sql天蓝色扩展的文章。
我认为利用副本硬件进行只读工作负载是合理的。
但这让我想知道,到底哪一个工作更多?原版还是复制品?
特别是,我不清楚副本从主服务器上“追赶”事务日志的代价有多大。
如果我正确地理解了,如果主服务器执行类似于UPDATE dbo.LargeTable SET [SomeColumn] = 10
的查询,那么它可能会执行索引扫描来更新所有行,但是事务日志实际上每一行包含一个条目吗?这意味着副本将需要对每一行进行键查找,而不是索引扫描,这将花费更多。
我肯定我的逻辑是错误的,但我想了解更多关于这一点。
这是否假定追赶主要业务是低成本的(相对于主体实际运行事务所产生的成本)?
另外,副本的物理页面在字节级别与主副本完全相同吗?(也就是说,碎片也是一样的)还是在逻辑上是一样的?
发布于 2018-05-08 18:09:11
但这让我想知道,到底哪一个工作更多?原版还是复制品?
小学。辅助程序不必为正在修改数据库的会话运行SELECT、INSERT、UPDATE和DELETE语句。这些操作产生的日志记录被发送到二级,后者将它们复制到日志文件中,然后使用重做过程将它们应用到数据库中。
当主程序写入日志文件并让检查点/Lazywriter写入数据库时,备用程序有时可以执行更多的IO操作。但总的来说,小学做的工作更多。
这意味着副本将需要对每一行进行键查找,而不是索引扫描,这将花费更多。
辅助程序不应用逻辑操作。日志记录准确地指示对数据库页所做的修改。
另外,副本的物理页面在字节级别与主副本完全相同吗?
是。实际上,如果主服务器发现一个损坏的页面,它将通过从辅助服务器获取该页的未损坏副本来修复损坏。这叫做自动页面修复
https://dba.stackexchange.com/questions/206102
复制相似问题