SQL Server中索引的用法详解


当前第2页 返回上一页

默认情况下,生成主键的同时将自动创建一个聚集索引。

2、使用T-SQL创建聚集索引

create clustered index index_name /*聚集索引名*/
on table_name
(
    id desc
)
with(drop_existing=on); /*如果存在则删除*/

每张表或者视图只能包含一个聚集索引,因为聚集索引改变了数据存储与排列方式。

无论是聚集还是非聚集索引,都将信息存储在平衡树或B-树中,B-树识别类似数据并将他们组合在一起,正是由于B-树中的检索基于键值,因此索引可以提升数据访问的速度。B-树将具有类似键的组合起来,所以数据库引擎只需搜索少量页面即可找到目标记录。

四、非聚集索引

每张表上可以有多个非聚集索引,可以在某个列上创建一个索引,也可以在已经是现有索引组成部分的多列上创建索引。

1、SSMS创建方法同上,T-SQL创建方法如下:

create nonclustered index fei /*聚集索引名*/
on defualt
(
    hits desc
)

2、添加索引选项

fillfactor:用于在创建索引时,每个索引页的数据占索引大小的百分比,默认100.当需要频繁修改表时,建议设置为70-80,不经常更新时建议90。

五、示例

create table ceshi --新建表
(
    id int identity(1,1) primary key,
    name varchar(20),
    code varchar(20),
    [date] datetime
)

--插入10w条测试数据
declare @n int
set @n = 1
while @n <100000
 begin
   insert into ceshi (name,code,[date]) values ('name'+cast(@n as varchar(20)),'code'+cast(@n as varchar(20)),getutcdate())
  set @n=@n+1
end

--查看数据
set statistics io on --查看磁盘io
set statistics time on --查看sql语句分析编译和执行时间
select * from ceshi

--查看索引情况
exec sp_helpindex ceshi

select * from ceshi where name = 'name1'

ctrl+l 查看执行计划 聚集索引扫描开销100%,考虑优化为索引查找,在name上建立非聚集索引。

--建立非聚集索引
create index name_index on ceshi
(
    name
)
--再次查看索引情况 多出来新建的非聚集索引
exec sp_helpindex ceshi

--在运行上面的语句
select * from ceshi where name = 'name1'
--明显发现速度变快了 , ctrl+l 发现聚集索引和非聚集索引各占50%

六、管理索引

--查看该表中的索引
exec sp_helpindex ceshi 
--改名
exec sp_rename 'ceshi.name_index','new_name' 
--删除索引
drop index ceshi.new_name
--检查碎片
dbcc showcontig(ceshi,new_name)
--整理碎片
dbcc indexdefrag(webDB,ceshi,new_name) 
--更新表中所有索引的统计
update statistics ceshi 

到此这篇关于SQL Server索引的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。

更多SQL内容来自木庄网络博客


标签:SQL

返回前面的内容

相关阅读 >>

sql堆叠注入简介

mysqlsql是什么?mysqlsql之间的区别有哪些

sql更新记录的命令是什么

sqlserver 索引的一些总结

字段值包含一批延续的字符串

sql中带in条件的查询及提高效率

用asp和sql实现基于web的事件日历

sql server 索引维护sql语句

mysql查询优化之explain的深入解析

非常不错的sql语句学习手册实例版

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...