指定索引的默认文件组?

时间:2009-02-04 17:59:09

标签: sql-server sql-server-2005 indexing filegroup

这令我感到困惑 - 在SQL Server 2005/2008中,我可以指定默认文件组,然后将其用于所有数据表。我还可以为所有BLOB类型字段指定另一个文件组。

但我无法弄清楚是否以及如何为索引指定默认文件组.....

我的设置通常是: *主文件组 - 只有系统目录 - 最低限度 * DATA文件组 - 我将其作为我的数据库的默认值 *所有索引的INDEX文件组 *所有BLOB数据的BLOB文件组(可选) * LOG(obviuosly)

现在,如果我通过脚本手动创建所有表和索引,我当然可以为每个表指定相应的文件组。但是有没有办法/技巧/黑客可以指定放置索引的位置?当我使用SQL Server Mgmt Studio时将列指定为表的主键,它会创建一个PK_(tablename)索引 - 但不幸的是,它会将其粘贴到DATA文件组中,一旦它存在,似乎我再也无法更改它(在可视化设计器中)。 / p>

我错过了什么吗?或者微软只是没有提供这样的设置??

感谢任何提示,指示,引导!

马克

2 个答案:

答案 0 :(得分:3)

如果表上存在聚簇索引,则数据和聚簇索引始终位于同一文件组中。您不能将基表和聚簇索引放在单独的文件组上。这是因为聚集索引是实际的表数据。

您当然可以将非聚集索引放在与其引用的表不同的文件组中。

您不能指定两个默认文件组,即一个用于数据,一个用于索引。

希望这能为您解决问题,但请随时提出进一步的问题。

答案 1 :(得分:-3)

您可以在除表所在的文件组之外创建聚簇索引,但表的文件组可能会自动更改为索引的文件组。