sql-server - 可以将 mdf 文件存储在不同的驱动器(和 ldf 文件)上吗?
问题描述
每个驱动器的最大空间是有限的,我有很多数据库。像这样将数据库存储在不同的驱动器上可以吗?
C: SQL Server install
E: MDF1
F: MDF2
G: MDF3
H: LDF1
I: LDF2
J: LDF3
环境 = SQL Server 2016 Standard 的一个实例
编辑:我知道建议将 mdf 和 ldf 文件存储在不同的驱动器上,但我只是不确定这个概念可以延伸多远:)
解决方案
是的!事实上,这样做可以显着提高性能。如果驱动器将 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 提供大量快速存储并尽可能利用它,其中包含大量科学知识,但也包含大量艺术 :)
推荐阅读
- gremlin - 是否有 Gremlin NULL 关键字或类似的不是遍历步骤的东西?
- java - 如何在定义的持续时间后停止执行 Java 中的步骤
- aws-lambda - 调用 lambda 函数处理程序 java
- jenkins - Bitbucket cloud webhook 不触发 Jenkins Build:无分支信息
- r - 如何在年龄金字塔图中填写缺失的年龄?
- python - 如何从 column_name != some_value 的数据库中查找记录?
- python - If 语句简单
- types - 给定一个类型,如何找到我需要实现的所有功能
- javascript - 类型错误:createTestCafe 不是函数
- r - 如何在不增加 NA 的情况下排除纵向分析中的某些参与者