数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt

数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt

ID:50047730

大小:369.00 KB

页数:45页

时间:2020-03-08

数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt_第1页
数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt_第2页
数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt_第3页
数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt_第4页
数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt_第5页
资源描述:

《数据库技术与应用——SQL Server 2005 教学课件 作者 张建伟 第8章 索引.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第8章索引8.1索引的概述索引是一个单独的、物理的数据库结构,是为了加速对表中的数据行的检索而创建的一种分散存储结构。索引是针对一个表而建立的,每个索引页面中的行都含有逻辑指针,指向数据库表中的物理位置,以便加速检索物理数据。8/3/20212SQLServer2005索引的分类聚集索引(clusteredindex,也称聚类索引、簇集索引)聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序。只有当表包含聚集索引时,表中的数据行才按照排序顺序存储。如果表具有聚集索

2、引,则该表称为聚集表。如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。8/3/20213SQLServer2005索引的分类非聚集索引(nonclusteredindex,也称非聚类索引、非簇集索引)非聚集索引具有独立于数据行的结构。非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。从非聚集索引中的索引行指向数据行的指针称为行定位器。行定位器的结构取决于数据页是存储在堆中还是聚集表中。对于堆,行定位器是指向行的指针。对于聚集表,行定位器是聚集索引键8/3/20214SQLServer2005索引的优点加快检索速度。

3、加速对联接表查询和执行排序或分组操作的查询如果在创建索引时定义了唯一性,强制行的唯一性。查询优化器依赖于索引起作用。8/3/20215SQLServer2005索引的缺点创建索引要花费时间并占有存储空间。降低数据维护的速度。在已索引的列上维护数据时,SQLServer会更新相关的索引。维护索引需要时间和资源。8/3/20216SQLServer2005索引设计原则索引设计不佳和缺少索引是提高数据库和应用程序性能的主要障碍,因此设计索引应该注意以下几个原则:在高选择性的列上创建索引如果索引包含多个列,则应考虑列的顺序。用于联接或搜索条件的列放在前面,其他列

4、基于非重复级别进行排序。不要在包括大量重复数据的列上创建索引不能将ntext、text、image、varchar(max)、nvarchar(max)和varbinary(max)数据类型的列指定为索引键列8/3/20217SQLServer2005创建索引在图形界面下创建索引打开MicrosoftSQLServerManagerStudio。在左侧的对象资源管理器中,依次展开数据库

5、Northwind

6、表,就可以看到已存在的表。选择要创建索引的表,如Employees。单击该表左侧的“+”号,然后选择索引,单击右键,在弹出菜单中选择“新建索引”命令8

7、/3/20218SQLServer2005在图形界面下创建索引8/3/20219SQLServer2005在图形界面下创建索引在弹出的“新建索引”对话框中输入索引的名称,设置索引的类型。8/3/202110SQLServer2005在图形界面下创建索引在对话框中单击“添加”按钮,将弹出“选择列”对话框。选择要添加到索引键的表列,并点击“确定”按钮关闭该对话框。8/3/202111SQLServer2005在图形界面下创建索引通过单击选择页中“选项”、“包含性列”和“存储”,可分别对他们的属性进行设置。然后单击“确定”按钮,将新建一个索引。8/3/2021

8、12SQLServer2005用SQL语句创建索引使用CREATEINDEX语句来创建索引,在表上创建索引时,要考虑以下事项和原则:使用CREATETABLE或ALTERTABLE对列定义PRIMARYKEY或UNIQUE约束时,SQLServer2005自动创建唯一索引。比起标准创建索引的方法,应优先考虑使用定义PRIMARYKEY或UNIQUE约束的方法来创建索引。必须是标的所有者,才能执行CREATEINDEX语句。尽量在较小的列上定义索引,因为较小的索引比具有较大的键值的索引更有效率。根据唯一性选择列,这样每一个键值可以标识少量行8/3/2021

9、13SQLServer2005CREATEINDEX语法CREATEINDEX命令的语法格式如下:CREATE[UNIQUE][CLUSTERED

10、NONCLUSTERED]INDEXindex_nameON{TABLE

11、VIEW}(column[ASC

12、DESC][,…n])[INCLUDE(column_name[,...n])]8/3/202114SQLServer2005CREATEINDEX参数UNIQUE为表或视图创建唯一索引。唯一索引不允许两行具有相同的索引键值。视图的聚集索引必须唯一。唯一索引中使用的列应设置为NOTNULL,因为在创建唯

13、一索引时,会将多个空值视为重复值。CLUSTERED创建索引时,键值的逻辑顺序决

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。