我一直在读大约并且得到的印象是,如果您使用 RAID,那么在文件组中使用多个 SQL Server 文件将不会带来任何改进,并且好处纯粹是管理上的(如果您开始用完空间或想要将数据分区为可管理的块以进行备份/平衡大型服务器机房周围的数据)。
但是,作为一个相当精明的软件人员,可以假设,即使对于较小的数据库,SQL Server 也会在逻辑文件基础上执行增长和锁定操作(用于写入),因此即使您使用 RAID,在文件组中拥有多个文件来平衡 I/O 似乎也是有意义的,或者从分布式文件组重建数据所花费的时间是否超过了减少锁定的好处?
我也知道表格/索引/日志的行为和好处可能有所不同。
有没有一个好的网站可以区分 RAID 已经到位时多个文件的好处?
答案1
我最近回答过类似的问题“多个数据文件和多个文件组”
这个问题也相当复杂,很难提炼出一个简洁的答案。了解 SQL Server 如何访问数据会有所帮助:请参阅“SQL Server 2000 I/O 基础知识”仍然有效
读取性能由 RAM 决定。您不必转到磁盘来读取数据:如果您这样做,则说明您的 RAM 不足。在 64 位出现之前的旧时代,如果您有一个 500 GB 的数据库,则只能容纳 64GB 的 RAM,因此您需要拆分索引或类似操作
编辑:您通常不需要 RAM 中的整个数据库,并且当您需要读取时,它应该停留在缓存中直到被逐出。
写入性能由 LDF 卷控制。查看上述文章中的预写日志
你做拆分数据库文件,以便在卷发生故障时可恢复。有了良好的备份/恢复计划,您可以分别使用 MDF 和 LDF。
编辑:如果您的磁盘控制器发生故障怎么办?您的磁盘是否都来自同一供应商/批次/固件?如果 RAID 5 中的 2 个磁盘发生故障怎么办?
如果同一卷上有多个文件,则任何读取请求都将比读取一个较大的文件(通常是连续的)花费更长的时间。这就是为什么文件服务器和数据库服务器通常以不同的方式构建的原因
您找不到一个好的网站,因为它还没有完成:正如您注意到的,每个人都倾向于对同一个文件组中的多个文件说“不”。
您将获得更多分区对齐并使用 64k 簇正确格式化 NTFSA