索引与视图模板课件

上传人:des****85 文档编号:295542439 上传时间:2022-05-20 格式:PPT 页数:65 大小:513.50KB
返回 下载 相关 举报
索引与视图模板课件_第1页
第1页 / 共65页
索引与视图模板课件_第2页
第2页 / 共65页
索引与视图模板课件_第3页
第3页 / 共65页
索引与视图模板课件_第4页
第4页 / 共65页
索引与视图模板课件_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《索引与视图模板课件》由会员分享,可在线阅读,更多相关《索引与视图模板课件(65页珍藏版)》请在金锄头文库上搜索。

1、11第第8章章 索引与视图索引与视图谢谢观赏2019-8-2822本章内容本章内容n8.1 使用索引使用索引n8.2 使用视图使用视图谢谢观赏2019-8-28338.1 使用索引使用索引索引是与表或视图关联的磁盘上结构,索引中的键存储索引是与表或视图关联的磁盘上结构,索引中的键存储在一个结构中,使在一个结构中,使SQL Server可以快速有效地查找与键值关可以快速有效地查找与键值关联的行。联的行。 建立索引的优点:建立索引的优点:索引可以减少为返回查询结果集而必须读取的数据量;索引可以减少为返回查询结果集而必须读取的数据量;索引还可以强制表中的行具有唯一性,从而确保表数据的数索引还可以强制

2、表中的行具有唯一性,从而确保表数据的数据完整性;使用索引可以快速找到表或索引视图中的特定信据完整性;使用索引可以快速找到表或索引视图中的特定信息息 。谢谢观赏2019-8-28448.1 使用索引使用索引n索引的分类索引的分类表或视图的索引可以包括以下几类:表或视图的索引可以包括以下几类:(1) 惟一索引惟一索引在表中建立惟一性索引时,组成该索引的字段或字段组在表中建立惟一性索引时,组成该索引的字段或字段组合在表中具有惟一值,也就是说,对于表中的任何两行记录合在表中具有惟一值,也就是说,对于表中的任何两行记录来说,索引键的值都是各不相同。来说,索引键的值都是各不相同。 谢谢观赏2019-8-2

3、8558.1 使用索引使用索引(2) 聚集索引聚集索引聚集索引根据数据行的键值在表或视图中排序和存储这聚集索引根据数据行的键值在表或视图中排序和存储这些数据行,即聚集索引决定了数据的物理顺序。只有在表中些数据行,即聚集索引决定了数据的物理顺序。只有在表中建立了一个聚集索引后,数据才会按照索引键值指定的顺序建立了一个聚集索引后,数据才会按照索引键值指定的顺序存储到表中。由于一个表中的数据只能按照一种顺序来存储,存储到表中。由于一个表中的数据只能按照一种顺序来存储,所以在一个表中只能建立一个聚集索引。所以在一个表中只能建立一个聚集索引。 表具有聚集索引,则该表称为聚集表。否则,其数据行表具有聚集索

4、引,则该表称为聚集表。否则,其数据行存储在一个称为堆的无序结构中存储在一个称为堆的无序结构中 。谢谢观赏2019-8-28668.1 使用索引使用索引(3) 非聚集索引非聚集索引非聚集索引包含非聚集索引键值,并且每个键值项都有非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。具有独立于数据行的结构指向包含该键值的数据行的指针。具有独立于数据行的结构 。从非聚集索引中的索引行指向数据行的指针称为行定位从非聚集索引中的索引行指向数据行的指针称为行定位器。行定位器的结构取决于数据页是存储在堆中还是聚集表器。行定位器的结构取决于数据页是存储在堆中还是聚集表中。对于堆,行定位

5、器是指向行的指针。对于聚集表,行定中。对于堆,行定位器是指向行的指针。对于聚集表,行定位器是聚集索引键。位器是聚集索引键。注意:注意:聚集索引和非聚集索引都可以是唯一的,即任何两行都聚集索引和非聚集索引都可以是唯一的,即任何两行都不能有相同的索引键值不能有相同的索引键值 ;索引也可以不是唯一的,即多行可;索引也可以不是唯一的,即多行可以共享同一键值以共享同一键值 ;每当修改了表数据后,都会自动维护表或;每当修改了表数据后,都会自动维护表或视图的索引视图的索引 。 谢谢观赏2019-8-28778.1 使用索引使用索引(4) 包含性列索引包含性列索引 一种非聚集索引,它扩展后不仅包含键列,还包含

6、非键一种非聚集索引,它扩展后不仅包含键列,还包含非键列列 。(5) 索引视图索引视图 视图的索引将具体化视图的索引将具体化(执行执行)视图,并将结果集永久存储在视图,并将结果集永久存储在唯一的聚集索引中,而且其存储方法与带聚集索引的表的存唯一的聚集索引中,而且其存储方法与带聚集索引的表的存储方法相同。创建聚集索引后,可以为视图添加非聚集索引。储方法相同。创建聚集索引后,可以为视图添加非聚集索引。谢谢观赏2019-8-28888.1 使用索引使用索引(6) 全文索引全文索引 一种特殊类型的基于标记的功能性索引,由一种特殊类型的基于标记的功能性索引,由Microsoft SQL Server全文引

7、擎全文引擎(MSFTESQL)服务创建和维护,用于帮服务创建和维护,用于帮助在字符串数据中搜索复杂的词。助在字符串数据中搜索复杂的词。(7) XML索引索引 xml数据类型列中数据类型列中XML二进制大型对象的已拆分持久表二进制大型对象的已拆分持久表示形式示形式 。注意:注意:对表中的列定义了对表中的列定义了PRIMARY KEY约束和约束和UNIQUE约束约束时,会自动创建索引。时,会自动创建索引。 谢谢观赏2019-8-28998.1 使用索引使用索引n索引设计准则索引设计准则 要设计出好的索引集,需要了解数据库、查询和数据列要设计出好的索引集,需要了解数据库、查询和数据列的特征的特征 。

8、(1) 数据库准则数据库准则 避免对经常更新的表创建过多的索引,并且列要尽可能避免对经常更新的表创建过多的索引,并且列要尽可能少;使用多个索引可以提高更新少而数据量大的查询的性能。少;使用多个索引可以提高更新少而数据量大的查询的性能。对小表进行索引可能不会产生优化效果对小表进行索引可能不会产生优化效果 。当视图包含聚合、表联接或聚合和联接的组合时,视图当视图包含聚合、表联接或聚合和联接的组合时,视图的索引可以显著地提升性能的索引可以显著地提升性能 。 谢谢观赏2019-8-2810108.1 使用索引使用索引(2) 查询准则查询准则为经常用于查询中的谓词和联接条件的所有列创建非聚为经常用于查询

9、中的谓词和联接条件的所有列创建非聚集索引。集索引。涵盖索引可以提高查询性能,因为符合查询要求的全部涵盖索引可以提高查询性能,因为符合查询要求的全部数据都存在于索引本身中数据都存在于索引本身中 。将插入或修改尽可能多的行的查询写入单个语句内,而将插入或修改尽可能多的行的查询写入单个语句内,而不要使用多个查询更新相同的行。不要使用多个查询更新相同的行。 评估查询类型以及如何在查询中使用列评估查询类型以及如何在查询中使用列 。例如,在完全。例如,在完全匹配查询类型中使用的列就适合用于非聚集索引或聚集索引。匹配查询类型中使用的列就适合用于非聚集索引或聚集索引。谢谢观赏2019-8-2811118.1

10、使用索引使用索引(3) 列准则列准则对于聚集索引,应保持较短的索引键长度。另外,对唯对于聚集索引,应保持较短的索引键长度。另外,对唯一列或非空列创建聚集索引可以使聚集索引效率高一列或非空列创建聚集索引可以使聚集索引效率高 .不能将不能将ntext、text、image、varchar(max)、nvarchar(max)和和varbinary(max)数据类型的列指定为索引键数据类型的列指定为索引键列列 ,不过,不过,varchar(max)、nvarchar(max)、varbinary(max)和和xml数据类型的列可以作为非键索引列参与非聚集索引。数据类型的列可以作为非键索引列参与非聚集

11、索引。xml数据类型的列只能在数据类型的列只能在XML索引中用作键列索引中用作键列 。 谢谢观赏2019-8-2812128.1 使用索引使用索引如果索引包含多个列,则应考虑列的顺序如果索引包含多个列,则应考虑列的顺序 。用于等于用于等于 (=)、大于、大于 ()、小于、小于 () 或或BETWEEN搜索条件搜索条件的的WHERE子句或者参与联接的列应该放在最前面。其他列子句或者参与联接的列应该放在最前面。其他列应该基于其非重复级别进行排序,就是说,从最不重复的列应该基于其非重复级别进行排序,就是说,从最不重复的列到最重复的列。到最重复的列。 考虑对计算列进行索引考虑对计算列进行索引 。谢谢观

12、赏2019-8-2813138.1 使用索引使用索引(4) 索引特征索引特征在确定某一索引适合某一查询之后,可以选择最适合具在确定某一索引适合某一查询之后,可以选择最适合具体情况的索引类型。创建索引时需确定以下选项。体情况的索引类型。创建索引时需确定以下选项。聚集还是非聚集聚集还是非聚集唯一还是非唯一唯一还是非唯一单列还是多列单列还是多列索引中的列是升序排序还是降序排序索引中的列是升序排序还是降序排序 谢谢观赏2019-8-2814148.1 使用索引使用索引n 创建索引创建索引1. 创建索引步骤如下:创建索引步骤如下:(1) 设计索引设计索引 索引设计包括确定要使用的列,选择索引类型索引设计

13、包括确定要使用的列,选择索引类型(例如聚集例如聚集或非聚集或非聚集),选择适当的索引选项,以及确定文件组或分区方,选择适当的索引选项,以及确定文件组或分区方案布置案布置 。(2) 确定最佳的创建方法确定最佳的创建方法 使用使用CREATE TABLE或或ALTER TABLE对列定义对列定义PRIMARY KEY或或UNIQUE约束。约束。谢谢观赏2019-8-2815158.1 使用索引使用索引默认情况下,创建的唯一聚集索引可以强制默认情况下,创建的唯一聚集索引可以强制PRIMARY KEY约束,除非表中已存在聚集索引或指定了唯一的非聚集约束,除非表中已存在聚集索引或指定了唯一的非聚集索引。

14、默认情况下,创建的唯一非聚集索引可以强制索引。默认情况下,创建的唯一非聚集索引可以强制UNIQUE约束,除非已明确指定唯一的聚集索引且表中不存约束,除非已明确指定唯一的聚集索引且表中不存在聚集索引。在聚集索引。 使用使用CREATE INDEX语句或语句或SQL Server Management Studio对象资源管理器中的对象资源管理器中的“新建索引新建索引”对话框创建独立于对话框创建独立于约束的索引约束的索引 。必须指定索引的名称、表以及应用该索引的列。还可以必须指定索引的名称、表以及应用该索引的列。还可以指定索引选项和索引位置、文件组或分区方案。默认情况下,指定索引选项和索引位置、文

15、件组或分区方案。默认情况下,如果未指定聚集或唯一选项,将创建非聚集的非唯一索引如果未指定聚集或唯一选项,将创建非聚集的非唯一索引 谢谢观赏2019-8-2816168.1 使用索引使用索引(3) 创建索引创建索引一个重要因素需要考虑:是对空表还是对包含数据的表一个重要因素需要考虑:是对空表还是对包含数据的表创建索引。对空表创建索引在创建索引时不会对性能产生任创建索引。对空表创建索引在创建索引时不会对性能产生任何影响,而向表中添加数据时,会对性能产生影响。何影响,而向表中添加数据时,会对性能产生影响。创建索引后,索引将自动启用并可以使用。可以通过禁创建索引后,索引将自动启用并可以使用。可以通过禁

16、用索引来删除对该索引的访问。用索引来删除对该索引的访问。谢谢观赏2019-8-2817178.1 使用索引使用索引2. 创建聚集索引创建聚集索引用途:聚集索引可以提高查询性能,还可以按需重新生用途:聚集索引可以提高查询性能,还可以按需重新生成或重新组织来控制表碎片,所以除了个别表之外,每个表成或重新组织来控制表碎片,所以除了个别表之外,每个表都应该有聚集索引。也可以对视图创建聚集索引都应该有聚集索引。也可以对视图创建聚集索引 。聚集索引按下列方式实现聚集索引按下列方式实现 : PRIMARY KEY和和UNIQUE约束约束在创建在创建PRIMARY KEY约束时,如果不存在该表的聚集约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引。主键列不允许空值。唯一聚集索引。主键列不允许空值。在创建在创建UNIQUE约束时,默认情况下将创建唯一非聚集约束时,默认情况下将创建唯一非聚集索引,以便强制索引,以便强制UNIQUE约束。如果不存在该表的聚集索引,约束。如果不存在该表的聚集索引,则可以指定唯一聚集

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号