使用数据库快照进行报告的优势


8

使用数据库快照进行报告的性能优势是什么?

从我的角度来看,这可能会降低性能,因为原始数据库中的每次写入都必须对快照本身进行另一次写入。

我可以看到,无论何时要报告数据,您都将使用快照,但这并不属于性能类别。

再说一次,是否有性能优势?

Answers:


7

使用位于生产OLTP服务器上的数据库快照很可能会使性能变差。主要有两个原因:

  1. 额外的写开销。快照是写时复制的,因此显然会影响性能。

  2. 快照将共享磁盘上旧数据库中的页面,但是它将在缓冲池中使用其自己的内存。如果您有一个大表,它将最终占用OLTP数据库和快照的内存,即使是未修改的页面也是如此。因此,您最终可能会占用大量额外的内存,如果您的服务器没有可用的RAM负载,则可能导致更多的磁盘I / O。

因此,如果您试图减少仅在单个服务器上的报告侵入性,那么最好只查询OLTP数据库并使用WITH(NOLOCK)提示,然后在需要时使用资源调控器进行控制。除此之外,请研究某种横向扩展系统(日志传送,镜像等)。


我同意快照会使情况变得更糟,但是如果您使用的是2008 R2,则提示NOLOCK在您报告时无助于OLTP性能。 stackoverflow.com/questions/15770402/...
詹姆斯詹金斯

1

我可以看到使用数据库快照的一个性能优势是,使用快照进行报告时,锁定和阻止问题得到了大大减少。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.