第三章索引.pptVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章索引

上海应用技术学院 上海应用技术学院 SQL Server 2005 案例教程 ---授课人:何贤芳 3-2-1 索引的特点 1 对一个未建立索引的表执行查询操作,SQL Server是逐行扫描表数据页面中的数据行,并从中挑选出符合条件的数据行.消耗时间太多,造成资源浪费. 2 索引是一个单独的、物理的数据库结构,它能对表中的一个或者多个字段建立一种排序关系,以加快在表中查询数据的速度。 3-3 索引 3-2-1 索引的特点 3 索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面。索引就存放在索引页面上。 4 用户建立索引能够提高查询速度,但过多索引会占据过多的磁盘空间,一般来说: 1经常被查询的列 2是外键或主键的列 3值惟一的列。 3-3 索引 索引的作用: 1、通过创建唯一索引,可以保证数据记录的唯一性. 2、可以大大的加快数据检索速度. 3、可以使用order和group by 子句中进行检索数据时,可以 显著减少查询时分组和排序的时间. 4、可以加速表与表之间的连接 提示:可以在多列上建立索引,这样的索引叫复合索引,复合索引可以代替多个单一索引。 3-3 索引 3-3 索引 3-2-2 索引分类 SQL Server中索引包括簇索引、非簇索引和唯一索引三种类型。 1、簇索引又叫聚集索引(CLUSTERED index) 行的物理存储顺序和索引顺序完全相同.索引包括多个列时叫复合索引.表只能有一个聚集索引。 当建立主键约束时,如果表中没有聚集索引,系统会用主键列作为聚集索引键 应该在建非簇索引之前建立聚集索引,聚集索引的速度比非聚集索引速度快。 3-2-2 索引分类 2、非簇索引 (NONCLUSTERED indxe) 非簇索引,它不改变行的物理存储顺序.它包含的是一个索引值和一个指针。如果一个表没有聚集索引,那么这张表就未排序过。 表中最多建立249个非簇索引。它比簇索引需要更多存储空间,检索效率较低。 常被用来查询的表的列上建立索引,但索引也需要占用空间,表越大建立的包含该表的索引也越大,当一个含有索引的表被改动时,改动数据的速度会减慢,所以不要在表中建立太多且很少用到的索引。 3-3 索引 3-2-2 索引分类 3、唯一索引 (UNIQUE) 唯—索引可以确保所有数据行中任意两行的被索引列不包括NULL在内的重复值。如果是复合唯一索引(有多列),则该索引可以确保索引列中每个组合都是唯一的。唯一索引不允许有两行具有相同的索引值,在创建惟一索引时,如果该列上已经存在重复值,系统会报错。 创建方法: (1)在建表或修改表中设置了主键或唯一性约束,SQL Server会自动为这些约束创建惟一索引。 (2)用建索引的命令使用unique 创建惟一索引。 3-3 索引 (1)使用命令方式创建: 单击表名称?右击/索引/新建索引?单击”添加”按钮?勾选索引的列或列的组合,填写填充因子?输入索引名称” ?关闭 说明:填充因子是指每个索引页的填满程度,因为当索引页填满时系统必须花时间拆分它以便为新行腾出空间,取值0-100之间的百分比数。 3-3 创建索引 (3) Create [Unique][Clustered | NonClustered] Index Index_Name On {Table | View}Column [ASC | DESC] [,..n]) [With [Pad_Index] [[,]FillFactor=FillFactor] [[,]Ignore_Dup_Key] [[,]Drop_Existing | [[,]Statistics_Norecompute] [[,]Sort_In_TempDB] ] [On FileGroup] 3-3 索引 例:在testdb库中学生表的‘学号’字段上创建一个名称为‘姓名_index’的非簇索引,使用降序排序,填满率为60% use testdb create index 姓名_index on 学生(姓名 desc) with fillfactor=60 例补:在XSCJ库的成绩表上创建名为“IX_课程编号学号”的聚集、唯一、复合索引,该索引基于“学号”和“课程编号”列创建 create uni

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档