2009-02-04 91 views
2

这令我费解 - 在SQL Server 2005/2008中,我可以指定默认文件组,然后将其用于所有数据表。我也可以为所有BLOB类型字段指定另一个文件组。为索引指定默认文件组?

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

我的设置通常是: *主要文件 - 只不过在系统目录 - 最低限度 * DATA文件组 - 这是我做的默认为我的数据库 * INDEX文件组各项指标均 * BLOB文件组(可选)的所有BLOB数据 * LOG(obviuosly)

现在,如果我的表创建所有通过脚本手动指数当然,我可以为每个文件指定适当的文件组。但是有没有一种方法/技巧/黑客可以指定将索引放在哪里?当我使用SQL Server Mgmt Studio将例如指定一个列作为表的主键,它会创建一个PK_(表名)索引 - 但不幸的是,它会将其粘贴到DATA文件组中,一旦它存在,似乎我无法再对其进行更改(在可视化设计器中)。

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

感谢任何提示,指针,线索!

马克

回答

3

如果有一个表上的聚簇索引,数据和聚集索引始终驻留在同一个文件组。您不能将基表和聚簇索引放置在单独的文件组上。这是因为聚集索引是实际的表数据。

您当然可以将非聚簇索引放置在它们引用的表的不同文件组中。

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

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

+0

是的,很显然 - 聚簇索引* IS *的数据 - 权利,我应该知道..... 我可以在设计器中更改其他索引的文件组 - 太糟糕了没有选项指定默认那些...... – 2009-02-05 17:05:27

-2

您可以在不同于表所在的文件组上创建聚簇索引,但表的文件组可能会自动更改为索引的文件组。