加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 13:17:34 所属栏目:MsSql教程 来源:网络整理
导读:参考文章:sqlserver 聚集索引和非聚集索引实例 数据库:twt001 数据表:aclu ? use twt001go create table aclu ( A int not null,B char(10),C varchar(10) ) go insert into aclu select 1,'B','C' union select 5,'C' union select 7,'C' union select 9

参考文章:sqlserver 聚集索引和非聚集索引实例

数据库:twt001

数据表:aclu

?

use twt001
go 

create table aclu 
( 
A int not null,B char(10),C varchar(10) 
) 
go 

insert into aclu 
select 1,'B','C' 
union 
select 5,'C' 
union 
select 7,'C' 
union 
select 9,'C' 
go

?

在aclu表上创建聚集索引

create clustered index CLU_ABC 
on aclu(A) 
GO 

?

查看索引

sp_helpIndex aclu


运行如下:

再次插入数据

insert into aclu
values(2,'C') 

因为有聚集索引所以整个表的物理结构发生了变化,此时按照该索引查询的内容为:

select * from aclu WITH(index = CLU_ABC) WHERE A>1 AND A<5 


这一条记录插入到了第一条记录的后面,而不是整个表的最后:

?

删除索引:

Drop index aclu.CLU_ABC

查询内容物理顺序还是按照顺序的,跟上图一样。

?

在aclu表上创建非聚集索引

create nonclustered index NONCLU_ABC 
on aclu(A) 


查看索引


插入数据
insert into aclu
values(4,'C')

此时表内容如下:

因为没有聚集索引,所以整个表的物理结构没有发生变化

以下查询的内容为:

select * from aclu WITH(index = NONCLU_ABC) 

?

删除索引后
Drop index aclu.NONCLU_ABC

查询内容物理顺序是按照插入的顺序

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读