admin 2025-12-14 01:52:40 养成攻略

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Microsoft Fabric 中的 SQL 数据库

可以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中创建非聚集索引。 非聚集索引是一种与存储在表中的数据相分离的索引结构,可对一个或多个选定列重新排序。 非聚集索引通常可帮助你通过比搜索基础表更快的速度查找数据;有时可以完全由非聚集索引中的数据回答查询,或非聚集索引可将数据库引擎指向基础表中的行。 一般来说,创建非聚集索引是为了提高聚集索引不涵盖的频繁使用的查询的性能,或在没有聚集索引的表(称为堆)中查找行。 可以对表或索引视图创建多个非聚集索引。

开始之前

典型实现

可以通过下列方法实现非聚集索引:

UNIQUE 约束**

创建 UNIQUE 约束时,会创建唯一的非聚集索引,以默认强制实施 UNIQUE 约束。 如果表中的聚集索引尚不存在,则可以指定唯一的聚集索引。 有关详细信息,请参阅 唯一约束和检查约束。

独立于约束的索引

默认情况下,如果未指定聚集索引,则会创建非聚集索引。 对于每个表可创建的最大非聚集索引数为 999。 这包括由 PRIMARY KEY 或 UNIQUE 约束创建的任何索引,但不包括 XML 索引。

索引视图的非聚集索引

对视图创建唯一的聚集索引后,便可以创建非聚集索引。 有关更多信息,请参阅“创建索引视图”。

安全性

Permissions

ALTER需要对表或视图具有权限。 用户必须是 sysadmin 固定服务器角色的成员,或者是 db_ddladmin 和 db_owner 固定数据库角色的成员。

使用 SQL Server Management Studio

使用表设计器创建非聚集索引

在“对象资源管理器”中,展开其中包含您要创建非聚集索引的表的数据库。

展开 “表” 文件夹。

右键单击你要创建非聚集索引的表,然后选择“设计”。

右键单击要在其上创建非聚集索引的列,然后选择“索引/键”。

在“索引/键”对话框中,选择“添加”。

从“选定的主/唯一键或索引”文本框中选择新索引。

在网格中,选择“创建为聚集”,然后从该属性右侧的下拉列表中选择“否”。

选择 关闭。

在“文件”菜单上,选择“保存table_name”。

使用对象资源管理器创建非聚集索引

在“对象资源管理器”中,展开其中包含您要创建非聚集索引的表的数据库。

展开 “表” 文件夹。

展开要为其创建非聚集索引的表。

右键单击“索引”文件夹,指向“新建索引”,然后选择“非群集索引…”。

在 “新建索引” 对话框的 “常规” 页中,在 “索引名称” 框中输入新索引的名称。

在“索引键列”下,选择“添加…”。

在“从 table_name 中选择列”对话框中,选中要添加到非聚集索引的一个或多个表列的复选框。

选择“确定”。

在“新建索引”对话框中,选择“确定”。

使用 Transact-SQL

使用 Transact-SQL 对表创建非聚集索引

在“对象资源管理器”中,连接到安装了 AdventureWorks2025 的数据库引擎的实例。 可以从AdventureWorks2025下载 。

在标准栏上,选择“新建查询” 。

将以下示例复制并粘贴到查询窗口中,然后选择“执行”。

USE AdventureWorks2022;

GO

-- Find an existing index named IX_ProductVendor_VendorID and delete it if found.

IF EXISTS (SELECT name FROM sys.indexes

WHERE name = N'IX_ProductVendor_VendorID')

DROP INDEX IX_ProductVendor_VendorID ON Purchasing.ProductVendor;

GO

-- Create a nonclustered index called IX_ProductVendor_VendorID

-- on the Purchasing.ProductVendor table using the BusinessEntityID column.

CREATE NONCLUSTERED INDEX IX_ProductVendor_VendorID

ON Purchasing.ProductVendor (BusinessEntityID);

GO

相关内容

创建索引(Transact-SQL)

SQL Server 和 Azure SQL 索引体系结构和设计指南