数据库拥有多个文件组有什么好处?

数据库拥有多个文件组有什么好处?

我目前的数据库相对较小,预计未来几个月数据库大小将大幅增长。当数据库大小变大时,我应该采取哪些预防措施来获得更好的性能?在这种情况下,将数据库的主文件组拆分为多个辅助文件组可以解决我的问题吗?请提供建议。

答案1

将数据库拆分到多个文件组允许您利用放置文件组的每个物理设备/路径的 I/O 带宽。将多个文件组放在同一个物理磁盘/LUN 上不会给您带来任何优势,但将它们放在多个磁盘/LUN 上可以为您提供单个磁盘/LUN 的数倍带宽(前提是底层物理连接允许)。

您可以获得非常详细的信息,将数据库中不经常访问的部分存储到速度较慢的“近线”类型的媒体上,并将活动量较高的部分(使用频率很高的索引、表格等)保存到成本更高的更快的存储器上。

根据您的设计,数据库变大后,性能不一定会显著下降。良好的索引策略可以允许底层数据库增长,而不会显著增加查询时间。如果您确实发现承载文件组的 I/O 已饱和,则在附加磁盘/LUN 上添加附加文件组可以提高性能。决定多个文件组是否对您有帮助的关键在于监控 I/O 性能。如果您受到 CPU 限制或 RAM 限制,多个文件组对您没有任何帮助。文件组实际上只能帮助提高 I/O 利用率,而这只是综合性能监控的一个方面。

答案2

@Evan 的回答很棒。但是,除了 I/O 之外,使用多个文件组还有其他好处。请查看这篇关于迁移到多个文件组的关键指标列表的文章:在 SQL Server 数据库中使用多个文件组

  • 当单个表占用超过 10% 的已用空间时
  • 当对大型文件组的定期维护花费的时间过长时,许多较小的文件组将更适合您的要求
  • 除其他原因外

相关内容