我有一个windows server VM,HDD和SSD存储相结合,SSD存储容量限制为50 GB,但HDD存储容量很高。
共享这些存储以尽可能以最稳定的状态和最高的性能运行 MSSQL 的最佳方式是什么?
是否需要在 SSD 驱动器中安装 SQL Server 引擎?
我有一个windows server VM,HDD和SSD存储相结合,SSD存储容量限制为50 GB,但HDD存储容量很高。
共享这些存储以尽可能以最稳定的状态和最高的性能运行 MSSQL 的最佳方式是什么?
是否需要在 SSD 驱动器中安装 SQL Server 引擎?
50 GB 不是很多空间,但如果您有一个小型数据库,您可以将整个数据库配置为仅在 SSD 上运行。如果不知道您的数据库大小和预计的增长率,我无法确定。
假设您确实需要使用 HDD 来保存您的用户数据库,那么我将评估 50 GB 是否足以容纳
tempdb
数据库。tempdb
是一个系统数据库,在查询处理过程中会发生某些操作,因此通常建议将其配置在自己的快速磁盘上。此外,当您的查询运行时,如果数据由于基数估计错误或其他原因而溢出到磁盘tempdb
,那么这就是溢出到磁盘的地方。与 HDD 相比,SSD 上发生溢出将对性能产生有意义的影响。通常,您应该配置
tempdb
9 个相同大小的文件(8 个数据文件和 1 个日志文件)以最大限度地提高其性能。同样,您也应该预先增加用户数据库的数据和日志文件,尤其是当它们位于 HDD 上时。数据库增长操作的性能成本可能很高,因此通过一次主动地完全扩展文件,您不必担心随着数据量的增加而产生多次成本。
我建议的唯一其他建议是,如果您可以为数据库使用两个不同的物理 HDD,那么您应该将数据库的数据文件放在一个 HDD 上,而将日志文件放在另一个 HDD 上,因为最大化 I/O 将有帮助。
通常建议(出于管理原因更是如此)将 SQL Server 引擎安装到它自己的驱动器上,与任何数据库分开。因此,根据我上面的建议,除了 1 个 SSD 和 2 个 HDD,您还需要第三个 HDD 来遵循这个建议。
如果这不可能,那么我想您应该将它安装到 SSD 上,这样它至少与您的用户数据库文件隔离,并且由于 SSD 将具有最高的磁盘性能,所以支持引擎应该不是问题文件和
tempdb
.我曾经使用过将引擎的安装路径及其用户数据库文件混合在一起的 SQL Server 实例,并且我自己从未遇到过问题,但是自从我使用依赖于 HDD 的实例以来已经有很长时间了,所以坚持下去如果您没有可以使用的额外专用 HDD,SSD 可能是最佳选择。
最后,确保您遵循SQL Server 最佳设置实践,这也将帮助您最大限度地提高性能。(这个资源有点过时,但仍然非常有效。)您还可以在DBA 培训计划 21:构建新的 SQL Server中找到更多更新的信息。