第8章 索引.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server 2005 第8章 索引 8.1 索引的概述 索引是一个单独的、物理的数据库结构,是为了加速对表中的数据行的检索而创建的一种分散存储结构。 索引是针对一个表而建立的,每个索引页面中的行都含有逻辑指针,指向数据库表中的物理位置,以便加速检索物理数据。 索引的分类 聚集索引(clustered index,也称聚类索引、簇集索引) 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序。 只有当表包含聚集索引时,表中的数据行才按照排序顺序存储。如果表具有聚集索引,则该表称为聚集表。如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。 索引的分类 非聚集索引(nonclustered index,也称非聚类索引、非簇集索引) 非聚集索引具有独立于数据行的结构。非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。 从非聚集索引中的索引行指向数据行的指针称为行定位器。行定位器的结构取决于数据页是存储在堆中还是聚集表中。对于堆,行定位器是指向行的指针。对于聚集表,行定位器是聚集索引键 索引的优点 加快检索速度。 加速对联接表查询和执行排序或分组操作的查询 如果在创建索引时定义了唯一性,强制行的唯一性。 查询优化器依赖于索引起作用。 索引的缺点 创建索引要花费时间并占有存储空间。 降低数据维护的速度。在已索引的列上维护数据时,SQL Server会更新相关的索引。维护索引需要时间和资源。 索引设计原则 索引设计不佳和缺少索引是提高数据库和应用程序性能的主要障碍,因此设计索引应该注意以下几个原则: 在高选择性的列上创建索引 如果索引包含多个列,则应考虑列的顺序。用于联接或搜索条件的列放在前面,其他列基于非重复级别进行排序。 不要在包括大量重复数据的列上创建索引 不能将 ntext、text、image、varchar(max)、nvarchar(max) 和 varbinary(max) 数据类型的列指定为索引键列 创建索引 在图形界面下创建索引 打开Microsoft SQL Server Manager Studio。 在左侧的对象资源管理器中,依次展开数据库|Northwind|表,就可以看到已存在的表。 选择要创建索引的表,如Employees。单击该表左侧的“+”号,然后选择索引,单击右键,在弹出菜单中选择“新建索引”命令 在图形界面下创建索引 在图形界面下创建索引 在弹出的“新建索引”对话框中输入索引的名称,设置索引的类型。 在图形界面下创建索引 在对话框中单击“添加”按钮,将弹出“选择列”对话框。选择要添加到索引键的表列,并点击“确定”按钮关闭该对话框。 在图形界面下创建索引 通过单击选择页中“选项”、“包含性列”和“存储”,可分别对他们的属性进行设置。然后单击“确定”按钮,将新建一个索引。 用SQL语句创建索引 使用CREATE INDEX语句来创建索引,在表上创建索引时,要考虑以下事项和原则: 使用 CREATE TABLE 或 ALTER TABLE 对列定义 PRIMARY KEY 或 UNIQUE 约束时,SQL Server 2005 自动创建唯一索引。比起标准创建索引的方法,应优先考虑使用定义 PRIMARY KEY 或 UNIQUE 约束的方法来创建索引。 必须是标的所有者,才能执行CREATE INDEX语句。 尽量在较小的列上定义索引,因为较小的索引比具有较大的键值的索引更有效率。 根据唯一性选择列,这样每一个键值可以标识少量行 CREATE INDEX语法 CREATE INDEX命令的语法格式如下: CREATE [UNIQUE][CLUSTERED|NONCLUSTERED] INDEX index_name ON {TABLE|VIEW}(column [ASC|DESC][,…n]) [INCLUDE ( column_name [ ,...n ] ) ] CREATE INDEX参数 UNIQUE 为表或视图创建唯一索引。唯一索引不允许两行具有相同的索引键值。视图的聚集索引必须唯一。唯一索引中使用的列应设置为 NOT NULL,因为在创建唯一索引时,会将多个空值视为重复值。 CLUSTERED 创建索引时,键值的逻辑顺序决定表中对应行的物理顺序。一个表或视图只允许同时有一个聚集索引。 CREATE INDEX参数 具有唯一聚集索引的视图称为索引视图。为一个视图创建唯一聚集索引会在物理上具体化该视图。必须先为视图创建唯一聚集索引,然后才能为该视图定义其他索引。 在创建任何非聚集索引之前创建聚集索引。创建聚

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档