第7章查询的优化索引与视图.pptVIP

  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文档。上传文档
查看更多
第7章查询的优化——索引与视图 7.1 索引 7.1.1 索引的基础知识 索引可以创建在任意表和视图的列字段上,索引中包含键值,这些键值存储在一种数据结构(B-树)中,通过键值可以快速地找到与键值相关的数据记录。 SQL Server提供了两种形式的索引,一种是聚集索引(Clustered)和非聚集索引(Nonclustered)。聚集索引根据键的值对行进行排序,所以每个表只能有一个聚集索引。非聚集索引不根据键值排序,索引数据结构与数据行是分开的。由于非聚集索引的表没有按顺序进行排序,所以查找速度明显低于带聚集索引的表。 索引的类型 聚集索引:根据索引的键值,排序表中的数据并保存。 非聚集索引:索引的键值包含指向表中记录存储位置的指针,不对 表中数据排序,只对键值排序。 惟一索引:保证索引中不含有相同的键值,聚集索引和非聚集索引都可以是惟一索引。 包含列的索引:一种非聚集索引,其中包含一些非键值的列,这些列对键只有辅助作用。 全文(full-text)索引:上Microsoft全文引擎(full-text engine)创建并管理的一种基开符号的函数(token-based functional)索引,支持快速的字符串中单词的查找。 XML索引:XML数据列中的XML二进制大对象(BLOBs)。 创建原则及注意事项 所引的建立有利也有弊,建立索引可以提高查询速度,但过多的建立索索引的建立有利也有弊,建立索引可以提高查询速度,但过多的建立索引会占据很多的磁盘空间。所以在建立索引时,数据库管理员必须权衡利弊,考虑主索引带来的有利效果大于带来的弊病。 下列情况适合建立索引: ·经常被查询搜索的列,如经常在where子句中出现的列。 · ORDER BY子句使用的列。 ·外键或主键列。 ·值惟一的列。 下列情况不适合建立索引。 ·在查询中很少被引用的列。 ·包含太多重复值的列。 ·数据类型为bit、text、image 等的列不能建立索引。 7.1.2 使用Microsoft SQL Server Management Studio创建索引 使用Microsoft SQL Server Management Studio创建索引的步骤如下。 (1)单击相应表左边的“+”号,右击“索引”节点,选择“新建索引”命令; (2)在弹出的【新建索引】对话框中设置要创建索引的名称、类型,添加索引键列。 例7-1:在school数据库中为student建立非聚集的惟一的复合索引studentindex(包含sno和sname列)。 7.1.3使用T-SQL语句创建索引 也可以使用CREATE INDEX语句来创建索引。语法如下: CREATE[UNIQUE][CLUSTERED|NONCLUSTERED] INDEX 索引名 ON 表名(列名[ASC|DESC][,…n]) [WITH [PAD_INDEX] [[,]FILLACTOR=fillfactor] [[,]DROP_EXISTING] … ] 其中各参数的含义如下。 (1)UNIQUE指定创建的索引为惟一索引。 (2)CLUSTERED|NONCLUSTERED:指定创建的是聚集索引还是非聚集索引 (3)ASC|DESC:确定某个具体的索引列是升序还是降序,默认为升序ASC (4)PAD_INDEX和fillfactor:填充因子,它指定创建索引的过程中,索引页的填满程度 (5)DROP_EXISTING:删除先前存在的、与创建索引同名的索引 例7-2:在school数据库中为student表创建一个唯一性聚集索引Studentindex2,索引关键字为sno,升序排列,填充因子是50%(执行该例时先将sno的主键移去) USE school GO CREATE UNIQUE CLUSTERED INDEX Studentindex2 ON student (sno ASC) WITH FILLFACTOR=50 7.1.4 删除索引 1.使用SSMS删除索引 方法一:右键单击要删除的索引—“删除” 方法二:单击要删除的索引,“编辑”—“删除” 2.使用T-SQL语句删除索引 DROP INDEX 表名.索引名 例7-3:删除表student的索引studentindex USE school GO DROP INDEX student.studentindex 第7.2章 视 图 7.2.1 视图的基础知识 视图是一个由SELECT语句指定,用以检索数据库表某些行或列数据的语句存储定义。 视图实际上也可

文档评论(0)

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

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

版权声明书
用户编号:5101121231000003

1亿VIP精品文档

相关文档