我们应该将日志文件还是数据文件保存在最快的驱动器上?

Mar*_*lli 4 sql-server database-internals sql-server-2014

SSD = 固态硬盘

我们有一个关于服务器 CRM01(营销 CRM 服务器 - 运行大型查询)上的 tempDB 性能的具体问题:

在 CRM01 上,tempDB 数据和日志文件驻留在固态驱动器上。SSD 总大小为 400Gb。Tempdb 数据文件占用 300 Gb,日志占用约 100 Gb,可能需要增加但没有剩余空间。

这个问题是理论上的。我们确实理解: - 如果 tempdb 日志文件增长太多,我们应该拆分我们的进程,以便数据应该以更小的块处理,或者我们应该考虑使用可能的临时物理表而不是 tempdb。

  • 数据和日志 tempdb 文件都应保留在 SSD 上以优化性能

但是,如果由于空间限制我们真的不得不决定将一些 tempdb 文件移出 SSD,您会选择将哪些文件移至标准的快速驱动器:数据文件还是日志文件?

什么不是 tempDB,它是一个普通的 DB。当然,我可以对表进行分区,并创建不同的文件组,但我仍然会将数据或日志保存在最快的磁盘中吗?

假设利用率为 50% 读取和 50% 更新和插入。

@Moderator,我同意问题的第二部分不客观,但它提供了见解和想法。

spa*_*dba 6

在我看来,将 tempdb 放入 SSD 驱动器而不查看性能统计数据是错误的做法。SSD 驱动器的每 GB 成本很高,是一种应以最佳方式使用的优质资源。

将最常用的数据库文件移动到 SSD 可能会获得更好的性能,因为您已经将数据库分成多个文件并将最有问题的对象隔离在它们单独的文件组中。

也就是说,与传统磁盘相比,SSD 非常适合随机读取和写入,这是您在数据文件中最常看到的模式。日志文件更受顺序读取和写入的影响,机械磁盘的性能与 SSD 一样好。

确实,tempdb 是实例的关键资源,应该放置在快速驱动器中,但是如果添加更多 RAM(比 SSD 便宜得多),您可能会看到更大的性能提升。

你的里程可能会有所不同,但一个通用的问题值得一个通用的答案。

  • 请注意:只有当整个驱动器专用于单个数据库的日志文件时,机械磁盘才能很好地执行顺序操作。一旦你有两个,它就会变得不那么连续。 (2认同)