首页 > 解决方案 > 可以将 mdf 文件存储在不同的驱动器(和 ldf 文件)上吗?

问题描述

每个驱动器的最大空间是有限的,我有很多数据库。像这样将数据库存储在不同的驱动器上可以吗?

C: SQL Server install
E: MDF1
F: MDF2
G: MDF3
H: LDF1
I: LDF2
J: LDF3

环境 = SQL Server 2016 Standard 的一个实例


编辑:我知道建议将 mdf 和 ldf 文件存储在不同的驱动器上,但我只是不确定这个概念可以延伸多远:)

标签: sql-server

解决方案


是的!事实上,这样做可以显着提高性能。如果驱动器将 LDF(日志)和 MDF(数据)文件物理移动到不同的驱动器,则资源负载会分散。我个人拆分的 MDF 和 LDF 文件比您的示例中的要多,这很棒。 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/410be90a-52da-439a-8826-20932ec1481b/separate-drives-for-tempdb-ldf-mdf-?forum=sqlgetstarted

如果您可以监控驱动器,它将帮助您微调哪个数据库处于最实际的负载下(尽管您也可以通过 MSSQL 中的动态管理视图看到其中的一些)

还有一种思想将 tempdb 放在自己的驱动器上,并为服务器拥有的每个物理内核创建一个文件。如果您可以将每个都放在自己的驱动器上,那就更好了(尽管由于成本原因不切实际) https://logicalread.com/sql-server-tempdb-best-practices-placement-w01/

这可以极大地帮助减少磁盘争用,从而减少死锁。这样做的理由很多,如果您可以访问固态硬盘(或其他非常快的驱动器,如光纤 SAN),那就更好了。对于设计良好的数据库,磁盘访问通常是最难克服的瓶颈。

一个重要的关键是驱动器应该在物理上是分开的,简单地做一个分区不会给你带来太多好处。搜索最佳实践将引导您尝试为 SQL 提供大量快速存储并尽可能利用它,其中包含大量科学知识,但也包含大量艺术 :)


推荐阅读