如何:对聚集索引中的数据进行排序

在创建或修改 Microsoft SQL Server 数据库中的聚集索引时,可以设置一个选项来控制对索引中的数据进行排序的时间。 既可以在创建索引时对数据进行排序,也可以在表凌乱不整后排序并重组数据。 有关导致表凌乱不整的原因以及建议解决方案的详细信息,请参见 SQL Server Books Online(《SQL Server 联机丛书》)中的“DBCC CHECKDB”主题。

在上述两个选项中,创建索引时对数据进行排序这一选项总是较快,原因在于它不需要复制数据,也不需要重新生成非聚集索引。

备注

为 SQL Server 2012 格式的数据库提供了一个新版本的表设计器。本主题介绍表设计器的旧版本,可将其与 SQL Server 早期格式的数据库配合使用。

在新版本中,可通过图形界面或直接在脚本窗格中更改表定义。如果使用图形界面,表定义将在脚本窗格中自动更新。若要在脚本窗格中应用 SQL 代码,请选择“更新”按钮。有关新版本的详细信息,请参阅如何使用表设计器创建数据库对象

备注

以下说明中的某些 Visual Studio 用户界面元素在您计算机上的名称或显示位置可能有所不同。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关详细信息,请参阅 Visual Studio 设置

对索引值进行排序

  1. 服务器资源管理器中右击包含将要排序的索引值的表,再从快捷菜单中单击**“打开表定义”**。

  2. 选择快捷菜单中的**“索引/键”**。

  3. 从**“选定的索引”**列表中选择索引。

  4. 确保**“创建为聚集的”**选项已选定。

  5. 如果所使用的是 SQL Server 6.5,则排序选项将会公开,必须从这些排序选项选择一个:

    选项

    操作

    数据排序

    默认选项。 在创建索引时对数据进行排序。

    数据已经排序

    消除在创建聚集索引时所执行的排序,通过检查每个索引值确定其是否比上一个值高来验证数据是否已排序。 如果任何行在此检查中失败,则无法在尝试保存表时创建索引。

    当数据满足该检查时,由于不复制数据,也不重新生成非聚集索引,所以此选项总是比“重组排序数据”选项快。 当指定填充因子以压缩或展开存储该表的页时,此选项非常有用。

    有关填充因子的更多信息,请参见“为索引指定填充因子”

    重组排序数据

    除由于复制数据并重新生成非聚集索引而导致此选项的速度总是较慢外,此选项与“数据已经排序”相同。 在表凌乱不整且希望对索引值重新排序时,最好重组数据。

    备注

    “数据已经排序”用 SORTED_DATA 选项来创建聚集索引。“重组排序数据”用 SORTED_DATA_REORG 选项来创建聚集索引。如果选择这两个选项中的任何一个且任何行在检查中失败,则在保存表时创建索引的尝试将失败。发生这种情况时,可以修复数据或选择“数据排序”选项。

  6. 最后单击**“关闭”**。

请参见

参考

索引属性

“索引/键”对话框

其他资源

使用索引