RAMDisk 或 PCI-E 上的 SQL TempDB?

RAMDisk 或 PCI-E 上的 SQL TempDB?

我问在 dba.stackexchange 上提问

由于我们有 800 GB 的内存,而数据库只有 ~250 GB,我们计划将 SQL 服务器的 tempdb 文件放在 RAMDisk 上,为其数据和日志文件分配 100GB,而不是当前的 SSD(SAN Tier 1),因为我们的供应商应用程序非常依赖 tempdb。

它比 PCI-E 卡好吗?我们只关心速度,而不关心持久性,因为每次重新启动 SQL 时,tempdb 都会被删除并重新创建。

我们更喜欢 WQHL 认证的供应商。有哪些供应商需要特别选择或避免?

答案1

SQL Server 不会删除/创建 TempDB。数据里面没有被保存下来,但文件是。SQL Server 期望它们在启动时是干净的,就像标准数据库的数据集和日志文件一样。

如果在 RAM 磁盘中创建 TempDB 文件,它们将在重新启动时被销毁,这会导致 SQL Server 崩溃,因为它要求 DB 处于干净状态。

我想,理论上你可以建立一些逻辑

  1. 在 SQL Server 关闭时复制一组“干净”的基线 TempDB .mdb 文件
  2. 并将它们恢复到 RAM 驱动器SQL Server 启动

但这会很麻烦并且容易出错,因为您需要确保在 SQL Server 引擎服务启动之前文件复制完成。

我使用并推荐“SQL Server 安装检查表”布伦特·奥扎尔急救员构建 SQL Server 时使用 SQL Server 工具包。它介绍了 SQL Server 构建的最佳实践。

相关内容