根据这篇文章和其他几篇文章,我发现: Performance best practices for SQL Server
最佳做法是禁用SQL Server日志磁盘的高级存储磁盘上的缓存。但是,我无法找到解释原因的地方。
有没有人有一些见解?
让我补充一点,我认为在日志驱动器上禁用只读缓存的原因是因为它使您必须在VM内部设置两个独立的存储池,这使得在Azure内部升级/降级VM更加成问题并且性能相当低。
例如,假设您从DS V13开始,该驱动器具有16个驱动器限制,但在您受到限制(25000 IOP)之前,其中大约有6个驱动器可以达到最大值。由于最佳实践表示数据的只读缓存而没有日志缓存,因此您将8个驱动器提供给数据,将8个驱动器提供给日志。
现在,服务器需要升级,因此您将其升级到DS V14。现在,您可以在受到限制(50000 IOP)之前最多输出12个驱动器。但是,您的数据驱动器的存储空间列大小仅为8,其限制为40000 IOP。所以你没有充分发挥IO的潜力。
但是,如果您可以从DS V13开始并将所有这16个驱动器分配到单个存储池,则将日志和数据都放在其中。您可以升级/降级到DS V15,而无需担心不会耗尽您的全部IOP潜力。
另一种说法是:如果为所有16个驱动器创建单个存储池,则在升级/降级VM方面具有更大的灵活性。如果必须创建两个存储池,则不需要。
答案 0 :(得分:3)
我们建议在托管日志文件的高级存储磁盘上配置“无”缓存。日志文件主要是写入繁重的操作,并且它们不会受益于ReadOnly缓存。有两个原因:
谢谢, 昂
答案 1 :(得分:1)
日志文件用作恢复的一部分,可以帮助将数据库还原到某个时间点。从停电或硬重启导致日志文件中的数据损坏对MSSQL来说并不好。请参阅MS的以下文章,它们与旧版本的SQL有关,但日志文件的用途没有改变。
有关将SQL驱动器缓存与SQL Server一起使用的信息,每个数据库管理员都应该知道 https://support.microsoft.com/en-us/kb/234656
SQL Server中缓存磁盘控制器的说明
https://support.microsoft.com/en-us/kb/86903