设置索引选项

本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中修改索引的属性。

本主题内容

  • 开始之前:

    限制和局限

    安全性

  • 修改索引的属性,使用:

    SQL Server Management Studio

    Transact-SQL

开始之前

限制和局限

  • 使用 ALTER INDEX 语句中的 SET 子句,将以下选项立即应用到索引:ALLOW_PAGE_LOCKS、ALLOW_ROW_LOCKS、IGNORE_DUP_KEY 和 STATISTICS_NORECOMPUTE。

  • 使用 ALTER INDEX REBUILD 或 CREATE INDEX WITH DROP_EXISTING 重新生成索引时,可以设置以下选项:PAD_INDEX、FILLFACTOR、SORT_IN_TEMPDB、IGNORE_DUP_KEY、STATISTICS_NORECOMPUTE、ONLINE、ALLOW_ROW_LOCKS、ALLOW_PAGE_LOCKS、MAXDOP 和 DROP_EXISTING(仅 CREATE INDEX)。

安全性

权限

要求对表或视图具有 ALTER 权限。

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server Management Studio

在表设计器中修改索引的属性

  1. 在对象资源管理器中,单击加号以便展开包含您要修改索引属性的表的数据库。

  2. 单击加号以便展开**“表”**文件夹。

  3. 右键单击您要修改索引属性的表,然后选择**“设计”**。

  4. 在**“表设计器”菜单上,单击“索引/键”**。

  5. 选择要修改的索引。 其属性将显示在主网格中。

  6. 更改任意属性的设置以自定义索引。

  7. 单击**“关闭”**。

  8. 在**“文件”菜单中,选择“保存 table_name”**。

在对象资源管理器中修改索引的属性

  1. 在对象资源管理器中,单击加号以便展开包含您要修改索引属性的表的数据库。

  2. 单击加号以便展开**“表”**文件夹。

  3. 单击加号以展开您要修改索引属性的表。

  4. 单击加号以便展开**“索引”**文件夹。

  5. 右键单击要修改属性的索引,然后选择**“属性”**。

  6. 在**“选择页”下,选择“选项”**。

  7. 更改任意属性的设置以自定义索引。

  8. 若要添加、删除或更改索引列的位置,请从**“索引属性 - index_name”对话框中选择“常规”**页。 有关详细信息,请参阅“索引属性”对话框的 F1 帮助

用于“返回首页”链接的箭头图标[Top]

使用 Transact-SQL

查看表中所有索引的属性

  1. 在**“对象资源管理器”**中,连接到数据库引擎的实例。

  2. 在标准菜单栏上,单击**“新建查询”**。

  3. 将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。

    USE AdventureWorks2012;
    GO
    SELECT i.name AS index_name, 
        i.type_desc, 
        i.is_unique, 
        ds.type_desc AS filegroup_or_partition_scheme, 
        ds.name AS filegroup_or_partition_scheme_name, 
        i.ignore_dup_key, 
        i.is_primary_key, 
        i.is_unique_constraint, 
        i.fill_factor, 
        i.is_padded, 
        i.is_disabled, 
        i.allow_row_locks, 
        i.allow_page_locks, 
        i.has_filter, 
        i.filter_definition
    FROM sys.indexes AS i
       INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id
    WHERE is_hypothetical = 0 AND i.index_id <> 0 
       AND i.object_id = OBJECT_ID('HumanResources.Employee'); 
    GO
    

设置索引的属性

  1. 在**“对象资源管理器”**中,连接到数据库引擎的实例。

  2. 在标准菜单栏上,单击**“新建查询”**。

  3. 将以下示例复制并粘贴到查询窗口中,然后单击**“执行”**。

    USE AdventureWorks2012;
    GO
    ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
        Sales.SalesOrderHeader
    SET (
        STATISTICS_NORECOMPUTE = ON,
        IGNORE_DUP_KEY = ON,
        ALLOW_PAGE_LOCKS = ON
        ) ;
    GO
    
    USE AdventureWorks2012;
    GO
    ALTER INDEX ALL ON Production.Product
    REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON,
                  STATISTICS_NORECOMPUTE = ON);
    GO
    

有关详细信息,请参阅 ALTER INDEX (Transact-SQL)

用于“返回首页”链接的箭头图标[Top]