具有可用性组的 tempdb 的任何不同指南?

SQL*_*Boy 1 sql-server tempdb availability-groups sql-server-2014

我在两节点 Windows Server 故障转移群集上运行的 SQL Server 2014 上设置了一个可用性组。设置由两个独立实例 + 同步自动故障转移组成。

我读过的许多 Microsoft 文章都提倡为 TempDB 使用多个文件来提高性能。似乎他们建议使用 8 个文件。

在这种配置的情况下,我应该这样做吗?它会提高性能吗?

Han*_*non 5

您几乎总是想要多个 TempDB 文件。在大多数情况下,我当然不会超过 8 个文件;可能更像 4。话虽如此,了解最佳配置的唯一方法是对其进行测试。

这同样适用于所有类型的 SQL Server 实例,包括高可用性设置,而不仅仅是 AlwaysOn 可用性组。


Aar*_*and 5

你在哪里看到 8 个文件的明确推荐?这当然不是普遍的。指导为每个内核 1 个文件,最多8 个内核。如果您有 8 个以上的内核,请从 8 个内核开始,如果您确实观察到可以通过其他文件缓解的分配争用类型,则仅添加更多内核(以 4 个为一组)(有关确定这一点的方法,请参阅此帖子)。如果您没有看到任何这种争用,那就没有什么可做的了。

确保所有文件的大小相同,具有相同的自动增长设置(以 MB 为单位指定,而不是 %),并且您启用了 TF 1117 和 1118(尽管从 SQL Server 2016 开始不再需要这些)。这篇文章及其指向的链接也可能很有用

一开始不要让文件变小;这是一种常见的策略,几乎永远不会奏效。只需预先分配您可以负担得起的所有空间。强迫它们增长(然后在每次重新启动或故障转移时缩小)只会给您的工作负载增加不必要的压力,并且不会完成任何事情(您打算用临时空闲空间做什么?)。如果 tempdb 将填满驱动器,则文件开始时是否很小并不重要;当你到达那里时它仍然是一个问题。