0

创建数据库时我有 2 个选项,这些数据库的第一要务是性能。

  • 选项 1:在 1 个文件组上的多个驱动器上分布文件。因此,所有文件都由 SQL 服务器管理,因此从空间角度使用和管理硬盘驱动器,但作为 DBA,我们对存储表(以及所有相关索引)的驱动器的控制为零。

  • 选项 2:将数据库主动分区到指定硬盘驱动器的命名文件组。

这个问题的一个很好的假设是,我们所有的磁盘在速度和性能上都是相同的,并且我们的 SAN 控制器具有足够的质量,不会成为我们在这种情况下的瓶颈。

还假设我们有一个“良好”的 tempDB 设置,其中我们在服务器的本地 SSD 上有正确的文件分区。

第二个选项为我们提供了控制权,我们可以将大型表的索引放在不同的硬盘上。这控制了我们对高强度任务的读写过程,并允许我们从两个磁盘读取并写入第三个磁盘。

所以我的问题是分布式文件(SQL 托管)如何针对命名文件组执行,其中磁盘读写是硬件配置中的限制因素。

4

1 回答 1

0

对于选项 1:

根据 SAN 供应商的不同,有许多不同的技术用于构建供 SQL Server 使用的逻辑磁盘分区 (LUN),其中一些技术,例如连接磁盘而不是条带化。

您应该考虑数据库存储可用性:RAID 1(镜像)、RAID 5 提供冗余和 RAID 10 从而提高磁盘可用性。

SSD 磁盘也由 SAN 管理,现代 SAN Storage 自动移动文件,对 SSD 具有高访问权限,无需用户中断。

还应考虑读取/写入数据的 San 缓存大小。

因此,了解您的 SAN 的能力并与 SAN 工程师联系以构建数据、日志和 tempdb 文件,尤其是 SAN 中包含不同种类的高/低速磁盘。有关 SQL Server 的更多详细信息SAN 存储最佳实践

SQL Server 的高性能存储系统

对于选项 2,

在 SAN 环境中无关紧要。详情请阅读:

SAN 上的 SQL Server 数据库文件组:相关与否?

于 2017-07-03T16:28:58.570 回答