什么情况下设置索引
发布时间:2024-01-01 12:44:46 所属栏目: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索引类型有几种,如何设置索引”的介绍了,感谢各位的阅读,希望这篇文章能帮助大家解决问题。 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐