2

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

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

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

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

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

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

马克

4

2 回答 2

3

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

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

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

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

于 2009-02-04T18:12:35.227 回答
-3

您可以在 table 所在的文件组以外的文件组上创建聚集索引,但 table 的文件组可能会自动更改为索引的文件组。

于 2009-02-27T11:56:51.897 回答