为什么我们需要SQL Server中的辅助数据文件?

时间:2009-11-10 12:04:26

标签: sql-server filegroup

在SQL Server 2005上创建新数据库时,我总是忽略此选项,因为我们可以忽略一些我们不理解的东西,并保持原样。 (我不是那么深入DBA)

所以现在我很好奇它是什么。

根据您的经验,您认为我们何时需要将辅助数据文件添加到我的数据库中,为什么需要它?

3 个答案:

答案 0 :(得分:3)

很多情况下这很有用 - 开始时,出于可用性原因,最好只保留主数据文件中的系统数据(使用Sql2k5及更高版本,只要主数据文件可用,数据库就可以联机,允许您修复/恢复/等非系统数据,同时尽可能多地在线)。其他一些使用辅助文件的案例:

  1. Partitioning跨多个LUN的数据
  2. 允许partial /文件组备份/恢复
  3. 在不同的LUN上划分不同的读/写访问类型(即顺序与随机)

答案 1 :(得分:1)

除了此处其他回复中已提到的性能方面,还存在安全问题。

数据库的目录视图(跟踪表,列,权限和所有系统内容)始终位于主数据文件中,您无法更改它。

如果您可以将主数据文件中的系统目录数据分开,并将您的用户数据放入辅助文件中,则主文件较小,更新和插入的次数会少,因此可能会因此而损坏。坏磁盘扇区被最小化。

如果您的系统目录视图(及其基础表)已损坏或被破坏,您的整个数据库将被烘烤 - 因此您肯定希望最有可能损坏该主数据文件。

在中小型数据库中,这可能不是一个大问题,但在更大的设置中可能需要考虑。

答案 2 :(得分:0)

其中一个重要原因是I / O.分割数据的能力意味着I / O现在分布在多个驱动器/ luns / etc上。这可以大大提高性能。