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

什么情况下设置索引

发布时间:2024-01-01 13:14:59 所属栏目:MsSql教程 来源:DaWei
导读: 很多朋友都对“SQL Server如何设置索引”的内容比较感兴趣,对此小编整理了相关的知识分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获,那么感兴趣的朋友就继续往下看
很多朋友都对“SQL Server如何设置索引”的内容比较感兴趣,对此小编整理了相关的知识分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获,那么感兴趣的朋友就继续往下看吧!

一、设置索引的权衡

1、什么情况下设置索引
定义主键的数据列(sql server默认会给主键一个聚集索引)。
定义有外键的数据列
对于经常查询的数据列
对于需要在指定范围内频繁查询的数据列
经常在where子句中出现的数据列
经常出现在关键字 order by、group by、distinct后面的字段。

2、什么情况下不要设置索引
查询中很少涉及的列,重复值比较多的列。
text、image、bit数据类型的列
经常存取的列
经常更新操作的表,索引一般不要超过3个、最多不要5个。虽说提高了访问速度,但会影响更新操作。

二、聚集索引

1、使用SSMS创建聚集索引
展开要创建索引的表->右击索引->选择新建索引->聚集索引->新建索引点添加->选择列->选择升序或降序->输入名字->确定。

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

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。

四、管理索引

--查看该表中的索引
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索引类型有几种,如何设置索引”的介绍了,感谢各位的阅读,希望这篇文章能帮助大家解决问题。

(编辑:常州站长网)

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

    推荐文章