sqlserver 聚集索引和非聚集索引实例

免费源码 2025-05-15 08:01www.dzhlxh.cn免费源码

深入了解SQL Server聚集索引与非聚集索引:一个实践指南

我们来创建一个数据库和表,以便进行后续的索引操作。

```sql

CREATE DATABASE myIndexDemo;

GO

USE myIndexDemo;

GO

CREATE TABLE ABC (A INT NOT NULL, B CHAR(10), C VARCHAR(10));

GO

INSERT INTO ABC

SELECT 1,'B','C' UNION SELECT 5,'B','C' UNION SELECT 7,'B','C' UNION SELECT 9,'B','C';

GO

```

现在,我们的表`ABC`中有了一些数据,接下来我们来聚集索引和非聚集索引。

聚集索引(Clustered Index)

在`ABC`表上创建聚集索引,它将根据列`A`的值重新组织表的数据。

```sql

CREATE CLUSTERED INDEX CLU_ABC ON ABC(A);

GO

```

查看索引信息:

```sql

SP_HELPINDEX ABC;

```

```sql

SELECT FROM ABC WITH(INDEX = CLU_ABC) WHERE A > 1 AND A < 5;

```

删除聚集索引:

```sql

DROP INDEX ABC.CLU_ABC;

```

删除索引后,物理顺序可能仍然按照索引创建时的顺序排列。查询数据:

```sql

SELECT FROM ABC;

```

非聚集索引(Non-Clustered Index)

在`ABC`表上创建非聚集索引,它不会重新组织表的数据,而是在原表结构基础上创建一个额外的索引结构。

```sql

CREATE NONCLUSTERED INDEX NONCLU_ABC ON ABC(A);

GO

```

查看索引信息:

```sql

SP_HELPINDEX ABC; -- 注意这里应该是表名的小写abc,因为SQL Server不区分大小写。不过原命令中的大写也是正确的。

Copyright © 2016-2025 www.dzhlxh.cn 金源码 版权所有 Power by

网站模板下载|网络推广|微博营销|seo优化|视频营销|网络营销|微信营销|网站建设|织梦模板|小程序模板