文章SQL Server tempdb 最佳实践提高性能建议我应该将文件拆分tempdb
为与核心数相等的文件。因此,对于 4 个内核,您将获得 4 个文件。
通过拥有更多的文件,您可以增加 SQL Server 可以随时推送到磁盘的物理 I/O 操作的数量。SQL Server 可以下推到磁盘级别的 I/O 越多,数据库运行的速度就越快。使用标准数据库,SQL Server 可以将它需要的大量数据缓存到内存中。由于 tempdb 的高写入特性,需要先将数据写入磁盘,然后才能将其缓存回内存。
虽然理论上听起来不错,但作为一般优化真的那么好吗?它是否可能仅适用于 IO 非常高的特定系统?
长期以来,建议使用 TempDB 数据文件数量与机器核心数的 1/4 到 1/2 倍的比率……
最后一句话一直是相关的。如果您没有看到争用,为什么还要添加其他文件?为了安全起见,大多数会添加 2-4 个文件作为大多数构建的起点,但除此之外,还要进行测量和反应。
像大多数一般准则一样,从最积极的角度来看,它过于简单化了。充其量,这是一个很好的起点(前提是您没有保持 1:1 的核心:数据文件比率与大量核心)。
正确的设计和正确的后续监测和基线是无可替代的。为tempdb拥有多个数据文件的原因是为了减少和减轻分配页面争用。有许多关于如何监控这种争用并采取相应措施的帖子。以下是一些资源:
分解 TempDB 争用(第 1 部分)
分解 TempDB 争用(第 2 部分)
分析 Tempdb 争
用 使用 SQL Server 2012 扩展事件优化 tempdb 配置
但是要回答您的问题,不,这不是tempdb的硬性配置和忘记部分。