索引与视图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



(1)从“开始”菜单上选择“程序”| Microsoft SQL Server 2008 R2| SQL Server Management Studio命令,使用Windows或 SQL Server身份验证建立连接。 (2)在“对象资源管理器”窗口中,打开要建 立索引的表“业务记录”表,单击前面的“+”, 展开选项,右键单击“索引”项,选择“新建索 引”命令,打开“新建索引”对话框




既然增加索引有如此多的优点,为什么不对表中的每一个列 创建一个索引呢?虽然索引有许多优点,但是为表中的每一 个列都增加索引是非常不明智的做法。这是因为增加索引也 有缺点: (1)创建索引和维护索引要耗费时间。 (2)索引需要占物理空间,除了数据表占数据空间之外, 每一个索引还要占一定的物理空间。如果要建立聚集索引, 那么需要的空间就会更大。 (3)当对表中的数据进行增加、删除和修改的时候,索引 也要动态的维护,这样就降低了数据的维护速度。 因为上述这些原因,建立索引需要花费一定的时间和存储空 间,而且使用INSERT和UPDATE对数据进行插入和更新操作 时,维护索引在时间和空间上也需要一定的开销。因此没有 必要对表中所有的列建立索引,而应该根据实际情况来创建 索引。

索引的优点和缺点 聚集索引和非聚集索引的特点 索引的类型 视图的概念、特点和类型 使用CREATE VIEW语句创建视图 通过视图修改基表中的数据

通过创建和设计良好的索引进行数据查询,可以显 著提高数据库查询和应用程序的性能,减少磁盘 I/O操作,降低系统资源的消耗。
Leabharlann Baidu
数据库系统用下列两种方法之一来访问数据:
7.2.1 创建索引 创建索引的方式可以分为直接方法和间接方法。
◦ 直接创建索引的方法就是使用命令和工具直接创建索引。 ◦ 间接创建索引就是通过创建其他对象而附加创建了索引。

主键约束或唯一性约束创建的索引的优先级高于使用 CREATE INDEX语句创建的索引。当在表上定义主键或唯 一性约束时,如果表中已经有了使用CREATE INDEX语句 创建的标准索引时,那么主键约束或唯一性约束创建的索 引覆盖以前创建的标准索引。

创建一个非聚集索引时,应该注意下列事项:
(1)如果没有指定索引类型,那么默认的类型是非聚集索引。 (2)索引页的叶级只包含索引的关键字,不包含实际的数据 (3)每个表最多可以创建249个非聚集索引。 (4)聚集索引应在非聚集索引被创建之前创建。 (5)唯一性是由叶级维护的。 (6)以下情况发生时,SQL Server会自动重建现有的非聚集索引: 删除现有的聚集索引时 创建聚集索引时 使用DROP_EXISTING选项来改变聚集索引列的定义时
(1)表扫描,就是指系统将指针放在该表的表头数据所在的数据页 上,然后按照数据页的排列顺序,逐页地从前向后扫描该表数据所 占有的全部数据页,直至扫描完表中的全部记录。在扫描时,如果 找到符合查询条件的记录,那么就将这条记录挑选出来。最后,将 全部挑选出来符合查询语句条件的记录显示出来。 (2)使用索引查找。索引是一种树状结构,其中存储了关键字和指 向包含关键字所在记录的数据页的指针。当使用索引查找时系统将 沿着索引的树状结构,根据索引中关键字和指针找到符合查询条件 的记录。最后将全部查找到的符合查询语句条件的记录显示出来。


索引是一种与表或视图关联的物理结构,能提供一种以一列 或多列的值为基础迅速查找表中行的能力,用来加快从表或 视图中检索数据行的速度。 为什么要创建索引呢?这是因为创建索引可以大大提高系统 的性能: (1)通过创建唯一性索引,可以保证每一行数据的唯一性。 (2)可以大大加快数据的检索速度,这也是索引的最主要 的原因。 (3)可以加速表和表之间的连接,特别是在实现数据的参 考完整性方面特别有意义。 (4)在使用ORDER BY和GROUP BY子句进行数据检索时, 同样可以显著减少查询中分组和排序的时间。 (5)通过使用索引,可以在查询的过程中使用优化隐藏器, 提高系统的性能。


聚集索引是一种数据表的物理顺序与索引顺序相同的索引。 建立索引时,系统将对表的物理数据页中的数据按列进行排列,然后 再重新存储到磁盘上,即聚集索引与数据是混为一体的。聚集索引的 叶级和非叶级构成了一个特殊类型的B+树结构. 聚集索引的特点如下: (1)表的数据按照索引的数据顺序排列。 (2)每个数据表只能建立一个聚集索引,并且会在第一个建立,常 常会在主键所在的列或者最常查询的列上建立聚集索引。 (3)索引将占用用户数据库的空间。 (4)适合范围查询。


非聚集索引是一种数据表的物理顺序与索引顺序 不相同的索引。非聚集索引与聚集索引具有相同 的B树结构,但是在非聚集索引中,基础表的数据 行不是按照非聚集键的顺序排序和存储,且非聚 集索引的叶级是由索引页而不是由数据页组成。 非聚集索引既可以定义在表或视图的聚集索引上, 也可以定义在表或视图的堆上。

在Microsoft SQL Server 2008 R2系统中有两种 基本的索引类型:聚集索引和非聚集索引。除此之 外,还有唯一性索引、包含性列索引、索引视图、 全文索引及XML索引等。
(1)堆文件 堆是不含聚集索引的表,表中的数据没有任何的顺序。堆 结构中数据按照插入的先后次序存放,堆文件的数据页面 不一定在物理上相邻。堆文件执行插入操作很容易,但是 效率不高。 (2) B+树的总体结构 B+树(Balance树,平衡树)是目前广泛采用的动态文件 结构. 在B+树索引中,索引分级组织成一棵树。最上层的索引 节点称为根节点,中间节点按照索引数据量分成不同的层 次。最下层的索引节点称为叶节点。


唯一索引是指索引值必须是唯一的,不允许数据 表中具有两行相同的索引值。 聚集索引和非聚集索引是从索引数据存储的角度 来区分的;而唯一索引和非唯一索引是从索引值 来区分的,所以唯一索引和非唯一索引既可以是 聚集索引,也可以是非聚集索引,只要列中的数 据是唯一的,就可以在一张表中创建一个唯一索 引和多个非聚集索引。
相关文档
最新文档