SQL Server - 跨不同逻辑驱动器拆分数据库的好处

Adr*_*n S 4 sql-server storage architecture windows-server

我们即将启动一个项目,将大型 DWH 迁移到新数据中心的新物理服务器。当前的服务器规范是在 Windows 2012 R2 上运行的 SQL Server Enterprise 2016 SP2。新服务器将是在 Windows 2019 上运行的 MSSQL 2019 Enterprise。

用于当前和新服务器的 SAN 存储是全闪存存储阵列。在当前环境中,除了将数据和日志文件分离到不同的逻辑驱动器之外,不同的数据库(仅数据文件)也被分离到不同的逻辑驱动器上。

  • 本地 SSD - TempDb
  • 逻辑驱动器 1 - 日志文件
  • 逻辑驱动器 2 - 用于暂存数据库的数据文件
  • 逻辑驱动器 3 - 面向用户的数据库的数据文件
  • 逻辑驱动器 4 - 支持数据库的数据文件(ReportServer、MDS 数据库)

作为服务器迁移的一部分,我正在考虑将所有数据文件合并到一个逻辑驱动器上。

  • 本地 SSD - TempDb
  • 逻辑驱动器 1 - 日志文件
  • 逻辑驱动器 2 - 数据文件

除了数据库文件管理之外,是否有任何性能优势可以将数据文件拆分到不同的逻辑驱动器上?多个逻辑驱动器是否提供更好的 IO,即使最终它是相同的物理存储阵列?

Dav*_*oft 11

将数据文件拆分到不同的逻辑驱动器上是否有任何性能优势?

如果所有卷都映射到 SAN 上的同一组物理磁盘,则通常没有区别。

但是,如果每个卷映射到不同的 SAN LUN,则 SAN 可能会以不同的方式为卷分配存储资源。例如,即使 LUN 共享相同的底层存储,它们也可以托管在不同的 SAN 控制器上、具有不同的缓存策略、单独监控等。

如果每个卷映射到一组单独的物理磁盘,那么将它们拆分的成本非常高,因为您无法在卷之间汇集和共享 IO 资源。由于大多数数据库文件 IO 是后台 IO,您通常应该将所有数据库文件的所有 IO 资源集中在一起,以最大限度地提高效率、共享和每个数据库的峰值 IO 吞吐量。

因此,这取决于您需要与您的 SAN 专家一起选择并适当配置 SAN 和服务器(例如 IO 队列深度)。