设为首页 收藏本站
查看: 588|回复: 0

[经验分享] 索引及其用途--SQL Server 2005

[复制链接]

尚未签到

发表于 2016-11-1 08:26:26 | 显示全部楼层 |阅读模式
六.索引及其用途

 

1.索引是以表列为基础的数据库对象,它保存着表中排序的索引列。

 

2.其主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。

 

3.创建索引与维护索引都会浪费时间,对表中的数据进行增加,删除和修改操作时,索引就要进行维护,否则索引的作用就会下降;另外索引也会占用一定的物理空间,如果占用的物理空间过多,就会影响到整个数据库SQL Server系统的性能。

 

4.建立索引的原则:

 

(1)定义主键的数据列一定要建立索引。


(2)定义有外键的数据列一定要建立索引。


(3)对于经常查询的数据列最好建立索引。


      A、对于需要在指定范围内的快速或频繁查询的数据列;

  B、经常用在WHERE子句中的数据列。


(4)对于那些查询中很少涉及的列,重复值比较多的列不要建立索引。


(5)对于定义为textimagebit的数据类型的列不要建立索引。

 

5.索引的分类:


(1)聚集索引:聚集索引会对表和视图进行物理排序。

(2)非聚集索引:不对表和视图进行物理排序,最多可建立250个非聚集索引,或者249个非聚集索引与1个聚集索引。

(3)唯一索引:唯一索引不允许两行具有相同的索引值。

 

6.创建索引的语法:

CREATE [UNIQUE][CLUSTERED | NONCLUSTERED]

INDEX index_name

ON {table_name | view_name}

[WITH [index_property [,....n]]

说明:

UNIQUE: 建立唯一索引。

CLUSTERED: 建立聚集索引。

NONCLUSTERED: 建立非聚集索引。

Index_property: 索引属性。

UNIQUE索引既可以采用聚集索引结构,也可以采用非聚集索引的结构,如果不指明采用的索引结构,则SQL Server系统默认为采用非聚集索引结构。

 

7.删除索引语法:

DROP INDEX table_name.index_name[,table_name.index_name]

说明:table_name: 索引所在的表名称。

     index_name :  要删除的索引名称。

 

    8.显示索引信息:

 

    使用系统存储过程:sp_helpindex 查看指定表的索引信息。

 

    执行代码如下:

    Exec sp_helpindex book1;

 

    9.重命名索引

    语法:

    Exce sp_rename table_name.old_index_name, new_index_name

 

    10.显示查询计划的命令为:

    SET SHOWPALN_ALL ON | OFF 或 SET SHOWPLAN_TEXT ON | OFF

    说明:帮助用户分析有哪些索引被系统采用。

 

    例子:

    USE book

    GO

    SET SHOWPLAN_ALL ON

    GO

    SELECT * FROM book1 WHERE 编号='YBZT2406'

    GO

    SET SHOWPLAN_ALL OFF

    GO 

    说明:在Set showplan命令与select 命令之间一定要有 go语句。

 

   11.设置是否显示磁盘IO统计的命令为:

   SET STATISTICS IO ON | OFF

 

   12.索引的维护

   更新索引的语法:

   UPDATE STATISTICS table_name index_name

 

   使用DBCC SHOWCONTIG 语句扫描表语法:

   DBCC SHOWCONTIG (table_name, index_name)

 

   使用DBCC INDEXDEFRAG语句进行碎片整理语法:

   DBCC SHOWDEFRAG(database_name,table_name,index_name)

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-294030-1-1.html 上篇帖子: SQL Server 跨数据库查询(转) 下篇帖子: Sql Server中的日期与时间函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表