网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 生活知识 知识问答

sqlserver数据库索引创建 使用 重建 索引碎片

时间:2024-11-10 13:31:00

1、索引介绍 1)聚集索引:一张表只能有一个聚集索引,通常表主键就默认是聚集索引,也可以设置非主键列为聚集索引,设置聚集索引后,数据存储将按照索引列有规则的排列 2)非聚集索引:一张表可以有多个非聚集索引,物理数据存储不会强制按照非聚集索引排列 3)一个索引最多有16个索引列,一张表最好不要超过5个索引 4)每当表数据变化(增、删、改)的时候,每个索引都需要按照规则更新索引位置

sqlserver数据库索引创建 使用 重建 索引碎片

2、新建一张不带主键的表 使用如下的SQL语句,创建一张测试的不带主键的表: CREATE TABLE IndexTable( Id varchar(36) N晦倘佳鳎OT NULL, IndexCol1 varchar(50) NULL, IndexCol2 varchar(50) NULL, IndexCol3 varchar(50) NULL )

sqlserver数据库索引创建 使用 重建 索引碎片sqlserver数据库索引创建 使用 重建 索引碎片

3、设置主键,查看聚集索引 1)使用sql语句设置Id列为主键:alter table IndexTable add constraint pk_Id primary key(Id); 2)设置完主键后,默认就将主键列设置为了聚集索引

sqlserver数据库索引创建 使用 重建 索引碎片sqlserver数据库索引创建 使用 重建 索引碎片

4、设置非聚集索引 使用sql语句设置列IndexCol1为非聚集索引:create nonclustered index non_index_col1 on IndexTable(IndexCol1);

sqlserver数据库索引创建 使用 重建 索引碎片sqlserver数据库索引创建 使用 重建 索引碎片

5、插入测试数据 使用sql语句插入5行记录

sqlserver数据库索引创建 使用 重建 索引碎片

6、删除部分测试数据 使用sql语句删除第2和第4行记录:delete from IndexTable where IndexCol1 = '第2行第1列' or IndexCol1 = '第4行第1列';

sqlserver数据库索引创建 使用 重建 索引碎片

7、查看索引碎片比例 使用sql语句命令 DBCC showcontig('IndexTable'); 即可查看索引的碎片率,当碎片率比较高的时候,就可以重建索引了

sqlserver数据库索引创建 使用 重建 索引碎片

8、重建索引 1)建立索引后,删除数据库时,索引行位置也会删除,但是索引中这里就会留下空白,后面的数据也不会占用这个位置,久而久之,索引里面就会有很多的空白,称为索引碎片,此时需要通过重建索引来消除索引碎片 2)使用sql语句命令重建索引:DBCC DBREINDEX('IndexTable');

sqlserver数据库索引创建 使用 重建 索引碎片
© 2026 一点知道
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com