【问题标题】:Specify default filegroup for indices?为索引指定默认文件组?
【发布时间】:2010-10-05 11:32:42
【问题描述】:

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

但我不知道是否以及如何为索引指定默认文件组.....

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

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

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

感谢任何提示、指点、线索!

马克

【问题讨论】:

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


    【解决方案1】:

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

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

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

    希望这可以为您解决问题,但请随时提出更多问题。

    【讨论】:

    • 是的,显然 - 聚集索引 IS 数据 - 对,我应该知道.....我可以更改设计器中其他索引的文件组 - 也糟糕的是,没有选项可以为这些指定默认值....
    • 添加一个连接项,请求在未来的版本中添加。
    【解决方案2】:

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

    【讨论】:

    • 聚集索引是实际表,忽略此答案。
    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多