关于数据库应该有多少个数据文件(mdf、ndf),有没有一个经验法则?
答案1
Tempdb 似乎是一种特殊的动物,因为它们专门解决这个问题。
http://msdn.microsoft.com/en-us/library/ee377054%28BTS.10%29.aspx
将 TempDB 文件拆分到多个文件可能会解决与 I/O 操作相关的性能问题。一般来说,每个处理器创建一个文件数据文件,并对所有创建的文件使用相同的大小。
大多数其他数据库的数据和日志应位于不同的驱动器上。这些驱动器很可能是 RAID 配置,因此您实际上在后台使用了多个驱动器。
如果您有一个热表,您可以将其移动到另一个文件组并将其放在单独的磁盘组上。
我一直在使用的某个性能监控工具建议将数据库拆分为与机器上的处理器数量相等的文件。不过我不记得在任何 MS 文档中读到过这一点。
答案2
一般来说,1.除了 TempDB 之外,每个处理器一个文件的事情我认为是 SQL Server 现代版本的神话。
只有在少数非常独特的情况下,多个文件才能带来真正的优势(使用分段备份的非常大的数据仓库中的分区表就是一个例子)。
就磁盘性能而言,通常最好将更多磁盘条带化为单个逻辑单元,并将一个大数据文件覆盖所有磁盘,因为这样您可以获得所有磁盘在数据库的所有活动中的性能优势。如果您拥有相同数量的物理磁盘,但将它们分成更小的组,并将数据放在每个组中的特定文件中,那么在大多数情况下,您降低了净性能,而不是提高了净性能。
答案3
根据经验法则,您最多应使用 50% 的磁盘(或磁盘系统)容量,否则您将需要按照 50% 限制的规则来拆分 mdf 文件。
希望这个简单的规则能够对你有所帮助。
冰