索引与视图模板.ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《索引与视图模板.ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 索引 视图 模板 ppt 课件
- 资源描述:
-
1、11第第8章章 索引与视图索引与视图谢谢观赏2019-8-2822本章内容本章内容n 8.1 使用索引使用索引n 8.2 使用视图使用视图谢谢观赏2019-8-28338.1 使用索引使用索引索引是与表或视图关联的磁盘上结构,索引中的键存储索引是与表或视图关联的磁盘上结构,索引中的键存储在一个结构中,使在一个结构中,使SQL Server可以快速有效地查找与键值关可以快速有效地查找与键值关联的行。联的行。 建立索引的优点:建立索引的优点:索引可以减少为返回查询结果集而必须读取的数据量;索引可以减少为返回查询结果集而必须读取的数据量;索引还可以强制表中的行具有唯一性,从而确保表数据的数索引还可以
2、强制表中的行具有唯一性,从而确保表数据的数据完整性;使用索引可以快速找到表或索引视图中的特定信据完整性;使用索引可以快速找到表或索引视图中的特定信息息 。谢谢观赏2019-8-28448.1 使用索引使用索引n 索引的分类索引的分类表或视图的索引可以包括以下几类:表或视图的索引可以包括以下几类:(1) 惟一索引惟一索引在表中建立惟一性索引时,组成该索引的字段或字段组在表中建立惟一性索引时,组成该索引的字段或字段组合在表中具有惟一值,也就是说,对于表中的任何两行记录合在表中具有惟一值,也就是说,对于表中的任何两行记录来说,索引键的值都是各不相同。来说,索引键的值都是各不相同。 谢谢观赏2019-
3、8-28558.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-2
10、811118.1 使用索引使用索引(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约束
17、时,如果不存在该表的聚集约束时,如果不存在该表的聚集索引且未指定唯一非聚集索引,则将自动对一列或多列创建索引且未指定唯一非聚集索引,则将自动对一列或多列创建唯一聚集索引。主键列不允许空值。唯一聚集索引。主键列不允许空值。在创建在创建UNIQUE约束时,默认情况下将创建唯一非聚集约束时,默认情况下将创建唯一非聚集索引,以便强制索引,以便强制UNIQUE约束。如果不存在该表的聚集索引,约束。如果不存在该表的聚集索引,则可以指定唯一聚集索引。则可以指定唯一聚集索引。谢谢观赏2019-8-2818188.1 使用索引使用索引将索引创建为约束的一部分后,会自动将索引命名为与将索引创建为约束的一部分后,会
18、自动将索引命名为与约束名称相同的名称。约束名称相同的名称。 独立于约束的索引独立于约束的索引 指定非聚集主键约束后,可以对非主键列的列创建聚集指定非聚集主键约束后,可以对非主键列的列创建聚集索引索引 索引视图索引视图若要创建索引视图,需要对一个或多个视图列定义唯一若要创建索引视图,需要对一个或多个视图列定义唯一聚集索引。视图将具体化,并且结果集存储在该索引的页级聚集索引。视图将具体化,并且结果集存储在该索引的页级别中,其存储方式与表数据存储在聚集索引中的方式相同别中,其存储方式与表数据存储在聚集索引中的方式相同 。谢谢观赏2019-8-2819198.1 使用索引使用索引3. 创建非聚集索引创
19、建非聚集索引通常,创建非聚集索引是为了提高聚集索引未包含的常通常,创建非聚集索引是为了提高聚集索引未包含的常用查询的性能。用查询的性能。可以通过下列方法实现非聚集索引可以通过下列方法实现非聚集索引 : PRIMARY KEY和和UNIQUE约束约束 独立于约束的索引:默认情况下,如果未指定聚集,将独立于约束的索引:默认情况下,如果未指定聚集,将创建非聚集索引创建非聚集索引 。 索引视图的非聚集索引:对视图创建唯一的聚集索引后,索引视图的非聚集索引:对视图创建唯一的聚集索引后,便可以创建非聚集索引便可以创建非聚集索引 。谢谢观赏2019-8-2820208.1 使用索引使用索引4. 创建唯一索引
20、创建唯一索引创建唯一索引可以确保任何生成重复键值的尝试都会失创建唯一索引可以确保任何生成重复键值的尝试都会失败。创建败。创建UNIQUE约束和创建与约束无关的唯一索引并没有约束和创建与约束无关的唯一索引并没有明显的区别明显的区别 。唯一索引可通过以下方式实现唯一索引可通过以下方式实现 : PRIMARY KEY或或UNIQUE约束约束 独立于约束的索引:可以为一个表定义多个唯一非聚集独立于约束的索引:可以为一个表定义多个唯一非聚集索引索引 索引视图索引视图如果在键列中存在重复值,将无法创建唯一索引或约束如果在键列中存在重复值,将无法创建唯一索引或约束 谢谢观赏2019-8-2821218.1
21、使用索引使用索引5. 使用使用Transact-SQL语句创建索引语句创建索引 使用使用CREATE INDEX语句可以创建索引,语法格式如下语句可以创建索引,语法格式如下 CREATE UNIQUE CLUSTERED | NONCLUSTERED INDEX index_name ON ( column ASC | DESC ,.n ) ; := database_name. schema_name . | schema_name. table_or_view_name谢谢观赏2019-8-2822228.1 使用索引使用索引 UNIQUE:为表或视图创建唯一索引。:为表或视图创建唯一索引
22、。唯一索引不允许两行具有相同的索引键值。视图的聚集唯一索引不允许两行具有相同的索引键值。视图的聚集索引必须唯一。索引必须唯一。 CLUSTERED:为表或视图创建聚集索引:为表或视图创建聚集索引 。一个表或视图只允许同时有一个聚集索引。为一个视图一个表或视图只允许同时有一个聚集索引。为一个视图创建唯一聚集索引会在物理上具体化该视图。必须先为视图创建唯一聚集索引会在物理上具体化该视图。必须先为视图创建唯一聚集索引,然后才能为该视图定义其他索引创建唯一聚集索引,然后才能为该视图定义其他索引 。 NONCLUSTERED:为表或视图创建非聚集索引:为表或视图创建非聚集索引 。对。对于非聚集索引,数据
23、行的物理排序独立于索引排序于非聚集索引,数据行的物理排序独立于索引排序 。每个表。每个表都最多可包含都最多可包含249个非聚集索引个非聚集索引 。默认值为默认值为NONCLUSTERED 谢谢观赏2019-8-2823238.1 使用索引使用索引 index_name:索引的名称:索引的名称 。在表或视图中必须唯一,但在数据库中不必唯一。索引在表或视图中必须唯一,但在数据库中不必唯一。索引名称必须符合标识符的规则名称必须符合标识符的规则 。主主XML索引名不得以索引名不得以#、#、 或或字符开头。字符开头。 column:索引所基于的一列或多列:索引所基于的一列或多列 。指定两个或多个列名,可
24、为指定列的组合值创建组合索指定两个或多个列名,可为指定列的组合值创建组合索引。在引。在table_or_view_name后的括号中,按排序优先级列出后的括号中,按排序优先级列出组合索引中要包括的列组合索引中要包括的列 。一个组合索引键中最多可组合一个组合索引键中最多可组合16列。组合索引键中的所列。组合索引键中的所有列必须在同一个表或视图中有列必须在同一个表或视图中 。谢谢观赏2019-8-2824248.1 使用索引使用索引 ASC | DESC :确定特定索引列的升序或降序排序方式。:确定特定索引列的升序或降序排序方式。默认值为默认值为ASC 。 :要为其建立索引的完全限定对象或非完全限
25、:要为其建立索引的完全限定对象或非完全限定对象。其中选项含义同其他命令。定对象。其中选项含义同其他命令。例如:创建简单非聚集索引。以下示例为例如:创建简单非聚集索引。以下示例为teaching数据库数据库中中student表的表的AGE列创建非聚集索引。列创建非聚集索引。USE teachingGOCREATE INDEX IX_age ON student (AGE)GO执行结果如图执行结果如图8.1所示。所示。谢谢观赏2019-8-2825258.1 使用索引使用索引6. 使用图形工具创建索引使用图形工具创建索引 具体步骤详见教材具体步骤详见教材谢谢观赏2019-8-2826268.1 使
展开阅读全文