理工·SQL Server 数据库管理标准教程ppt第6章.pptVIP

理工·SQL Server 数据库管理标准教程ppt第6章.ppt

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

第6章 索引及关系完整性 6.1 索引的概述 6.2 索引的分类 6.3 索引的操作 6.4 关系完整性 6.1 索引的概述 索引是数据库中对数据查询的一种优化方式,通过创建索引可以使用户在对数据库查询的时候更加有效率。 虽然在Create Table或者Create View语句中没有指定一个特殊的行序,但是SQL Server确实使用内部索引来有效地进行行选择和排序。当执行一条DML语句,例如执行Select语句时,或者当打开一个SQL游标时,SQL Server自动选择使用的索引。当指定一个主键或者唯一性约束时,SQL Server为基表创建一个内部索引。当然用户也可以使用SQL Create index语句创建附加的索引。 6.1 索引的概述 索引一旦创建就和其相关的表绑定到了一起。就索引的功能来讲,它是为了提高对表查询的效率,脱离了表来讲索引是没有任何意义的。但对于索引,读者在学习的时候要区别于前面讲的Select语句中的group by选项,本书后面还会对两者进行比较。索引是数据库学习的一个难点,很多学生虽然对它的语法熟悉,但对于在什么时候用索引、怎么用却不能够正确处理。如果读者能够理解索引的真正作用,我们就可以通过一些小小的操作使得我们数据库的查询效率有很大提高。 6.1 索引的概述 前面我们已经提到,索引的作用是提高数据库的查询效率。在这里,希望各位读者首先要认识到其重要性。数据库是管理信息系统的灵魂,它的好坏直接影响到系统的效率,而数据库各种操作中,查询占了70%多,所以,查询的好坏也就直接影响到数据库的效率了。可能前面的话太抽象,我们来举个例子,银行的取款系统是一个最常见的信息管理系统,用户做所有的操作之前,都要先找到数据库中的相关用户信息。我们试想一下,如果您在自动取款机前面等了半个小时才找到您的相关信息,您还会用这种取款方式吗?可见数据查询的效率,很大程度上决定了软件的成败,读者通过这章的学习,就可以使用索引使数据库更加实用。 6.1 索引的概述 索引这个词,我们平时都会听到,一般它和目录是一个意思,在数据库中的作用也就是目录的作用。索引一旦创建就和其相关的表绑定到了一起,同时,它也要占用表的资源。如果一个表的索引太多,我们维护起来会很不方便,所以,索引也不是越多越好,读者在开发数据库的时候要实际问题实际分析。一般情况下,我们不应该在经常更新的列上面创建索引。 索引和group by的区别:group by是查询表时的一个选项,它的作用是使得查询的结果按照某一个顺序显示,它不会占用表的资源,也不会使查询更快,它只是改变结果显示的顺序。 6.2 索引的分类 索引可以分为普通索引和簇索引,SQL Server允许每一个基表有一个簇索引。簇索引使表中的数据与索引一同存储并使行的物理顺序与索引的顺序保持一致。这种结构可以大大提高访问行的性能,特别是对于有连续键值的行集。如果以某种特殊的顺序频繁访问行(例如, 按学号访问学生),检索相关的行集(例如, 指定订单ID的订单项),或者根据值的范围检索行,那么可以考虑在合适的列上使用簇索引。如果这些列已经列在主键约束或者唯一性的约束中,可以在 Create Table的约束子句中增加Clustered关键字。否则,可以在 Create Index语句中增加Clustered关键字,如下所示: 6.2 索引的分类 Create Clustered Index EmpNameIX On student (学号) 以上SQL语言的作用是在student表中的学号列上创建了一个簇索引,它的顺序是学号的升序。如果没有指定Clustered关键字,那么SQL Server就创建一个非簇索引。对于具体的语法,本章后面会做详细说明。 6.2 索引的分类 注意:对于一个长键使用簇索引,要考虑到空间/性能的平衡。当表有一个簇索引时,SQL Server存储一个簇键值作为“定位器”,用于该表的非簇索引中的内容。对于一个很大的表,这样可能显著增加非簇索引所需的空间,对于较小的表,影响不会太大,对于没有簇索引的表,SQL Server就使用一个内部的行标识符作为存储每一个索引项的定位器。 6.2 索引的分类 索引对数据库的性能有积极的影响也有消极的影响。简言之,索引可以加快数据检索的速度,但如果索引列的值变化时,SQL Server要更新新基表中的数据项,这样就需要花费一些时间。总的原则是,对于那些在数据库中插入新行时容易发生变化的列,创建索引时,要格外地小心。这些索引应该为平衡更新的影响提供必要的帮助。 6.3 索引的操作 6.3.1 创建索引定义语法格式 在SQL语言中,创建索引的语句是Create Index。Cr

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档