1、教学提示:教学提示:数据库中的索引与书籍中的索引类似。在一本书中,利用索引可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。当创建数据库并优化其性能时,应该为数据查询所使用的表列创建索引。教学要求:教学要求:通过本章的学习,读者应该掌握以下内容:索引的概念、索引的创建、管理和维护、全文索引的使用。第第8 8章章索引、全文索引与优化索引、全文索引与优化 8.1 索引的概念8.2 索引的类型8.3 索引的创建与管理8.4 索引的维护8.5 索引优化8.6 全文索引8.7 本章实训第第8 8章章索引、全文索引与优化索引、全文索引与优化
2、第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念 概念 优、缺点 建索引的列2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训1.1 1.1 索引的概念索引的概念第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念 概念 优、缺点 建索引的列2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训1.2 1.2 创建索引的优、缺点创建索引的优、缺点创建索引所具有的优点,使得可以极大地提高系统的性能索引为性能所带来的好处也是有代价的。使用索引有许多不利的方面 在设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资
3、源方面的代价。第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念 概念 优、缺点 建索引的列2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训1.1.3 3 考虑建索引的列考虑建索引的列在经常需要搜索的列上;在作为主键的列上;在经常用在连接的列上;在经常使用在WHERE子句中的列。在经常需要排序的列上;在经常需要根据范围进行搜索的列上;第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念 概念 优、缺点 建索引的列2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训1.1.3 3 不考虑建索引的列不考虑建索引的列对于那
4、些在查询中很少使用或者参考的列;对于那些只有很少唯一数据值的列;对于那些定义为TEXT、NTEXT、IMAGE或BIT等数据类型的列;当列的修改性能远远大于检索性能时。第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型 聚集索引 非聚集索引3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训2.1 2.1 聚集索引聚集索引第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型 聚集索引 非聚集索引3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训2.1 2.1 聚集索引聚集索引提示:在缺省情况下,所创建的索引是非聚集索引
5、;在每一个表上面,可以创建不多于249个非聚集索引。注意:由于非聚集索引使用索引页存储,因此它比聚集索引需要更多的存储空间,且检索效率较低。第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型 聚集索引 非聚集索引3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训2.2 2.2 非聚集索引非聚集索引第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型 聚集索引 非聚集索引3 创建管理4 维护索引5 索引优化6 全文索引7 本章实训2.2 2.2 非聚集索引非聚集索引提示:在缺省情况下,所创建的索引是非聚集索引;在每一个表上面,可
6、以创建不多于249个非聚集索引。注意:由于非聚集索引使用索引页存储,因此它比聚集索引需要更多的存储空间,且检索效率较低。第第8 8章索引、全文索引与优化章索引、全文索引与优化 3.1 3.1 使用使用T-SQLT-SQL创建与管理索引创建与管理索引 使用T-SQL语句中的CREATE INDEX,既可以创建聚集索引或非聚集索引。其语法如下:CREATE UNIQUE CLUSTERED|NONCLUSTEREDINDEX 索引名索引名 ON 表名|视图名 列名 ASC|DESC ,.n)1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索
7、引7 本章实训提示:在SQL Server 2000数据库中,为表定义一个主键,将会自动在主键所在列上创建一个唯一索引,称之为主键索引。主键索引是唯一索引的特殊类型。第第8 8章索引、全文索引与优化章索引、全文索引与优化 简单索引简单索引 【例8.1】为教学成绩管理系统中的学生信息表的学号列创建索引。可以在查询分析器中使用存储sp_helpindex检查索引创建情况。1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训第第8 8章索引、全文索引与优化章索引、全文索引与优化 使用唯一聚集索引使用唯一聚集索引 【例8.2】为教学
8、成绩管理系统中的教师信息表的登录名列创建索引,并且强制唯一性。在教师信息表的登录名列上建立聚集索引,并进行唯一性约束,比在编号列上建立聚集索引更能提高查询效率。1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训简单组合索引简单组合索引 【例8.3】为教学成绩管理系统中的教学成绩表的学号列和课程编号列创建索引。在教学成绩表中会频繁地进行基于学号和课程
9、编号的查询操作,因此在学号列和课程编号列上建立组合索引。创建索引时若不使用CLUSTERED关键字,将创建非聚集索引。第第8 8章索引、全文索引与优化章索引、全文索引与优化 删除索引删除索引 除去聚集索引将导致重建所有非聚集索引。使用T-SQL语句中的DROP INDEX,可以从当前数据库中删除一个或多个索引。其语法如下:DROP INDEX 表名表名.索引名索引名|视图名视图名.索引名索引名 ,.n 1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2
10、索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训3.2 3.2 用企业管理器创建查看索引用企业管理器创建查看索引第第8 8章索引、全文索引与优化章索引、全文索引与优化 3.2 3.2 使用企业管理器重命名索引使用企业管理器重命名索引1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训第第8 8章索引、全文索引与优化章索引、全文索引与优化 3.2 3.2 使用企业管理器删除索引使用企业管理器删除索引 必须先删除约束后,才能删除PRIMARY KEY或UNIQUE约束使用
11、的索引。删除视图或表时,自动删除在视图或表上永久性和临时性创建的所有索引。当一个索引不再需要时,可以将其从数据库中删除,以回收它当前使用的存储空间。1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理 T-SQL语句 企业管理器 使用向导4 维护索引5 索引优化6 全文索引7 本章实训3.3 3.3 使用向导创建索引使用向导创建索引第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引
12、 索引碎块 整理碎片 重建索引5 索引优化6 全文索引7 本章实训4.1 4.1 显示索引的碎块信息显示索引的碎块信息 【例8.4】在查询分析器中得到教学成绩管理数据库中课程信息表的数据和索引的碎片信息。其语法如下:DBCC SHOWCONTIG (表名表名|表的表的ID|ID|视图名视图名|视图的视图的IDID ,索引名|索引的ID )第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引 索引碎块 整理碎片 重建索引5 索引优化6 全文索引7 本章实训4.2 4.2 整理碎片整理碎片 其语法如下:DBCC INDEXDEFRAG (数据库名
13、数据库名|数据库的数据库的ID|0 ID|0 ,表名表名|表的表的ID|ID|视图名视图名|视图的视图的ID ID ,索引名索引名|索引的索引的IDID )WITH NO_INFOMSGS 第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引 显示索引的碎块信息 整理碎片 重建索引5 索引优化6 全文索引7 本章实训4.4 4.4 重建索引重建索引 其语法如下:DBCC DBREINDEX (数据库名数据库名.owner.owner.表名表名 ,索引名 ,fillfactor )WITH NO_INFOMSGS 第第8 8章索引、全文索引与优
14、化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引5 索引优化 设计索引 优化向导6 全文索引7 本章实训5.1 5.1 一些关于设计索引的建议一些关于设计索引的建议将更新尽可能多的行的查询写入单个语句内,而不要使用多个查询更新相同的行。使用索引优化向导分析查询并获得索引建议。对聚集索引使用整型键。在唯一列、非空列或IDENTITY列上创建聚集索引。在查询经常用到的所有列上创建非聚集索引。检查列的唯一性。不要为只有很少唯一值的列创建索引第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引5 索引优化 设计索引 优化向导
15、6 全文索引7 本章实训5.2 5.2 索引优化向导索引优化向导第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引 概述 企业管理器 向导创建 用全文索引7 本章实训6.1 6.1 全文索引概述全文索引概述全文检索全文索引全文索引目录Microsoft Search服务第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引 概述 企业管理器 使用向导 用全文索引7 本章实训6.2 6.2 创建全文索引目录创建全文索引目录 (1)在企业管理器的目
16、录树中选择要创建全文索引目录的数据库,将其展开,右键单击【全文目录】对象,从快捷菜单中选取【新建全文目录】项,则会出现【新建全文目录】对话框。(2)输入要创建的全文索引目录名称和文件存放位置。单击【计划】标签,则会出现全文索引目录计划对话框。(3)在【全文索引目录计划】对话框中可以创建和编辑全文索引目录执行计划。单击【确定】按钮,完成创建全文索引目录。第第8 8章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引 概述 企业管理器 使用向导 用全文索引7 本章实训6.3 6.3 使用向导创建全文索引使用向导创建全文索引第第8 8
17、章索引、全文索引与优化章索引、全文索引与优化 1 索引概念2 索引类型3 创建管理4 维护索引5 索引优化6 全文索引 概述 企业管理器 使用向导 用全文索引7 本章实训6 6.4.4 使用使用全文索引全文索引 【例8.5】在教学成绩管理数据库的学生信息表中,找出家庭地址在“太原”的学生信息。CONTAINS关键字的语法如下:CONTAINS(列名列名|*,)【例8.6】在教学成绩管理数据库的学生信息表中找出家庭地址在“太原”的学生信息。FREETEXT关键字的语法如下:FREETEXT(列名列名|*,搜索条件)第第1010章章 游标及事务游标及事务1 游标 游标的概念 声明游标 打开游标 数
18、据处理 关闭游标 释放游标2 事务 事务的概念 事务的模式 事务控制3 实训4 小结 实训实训上机练习创建和管理索引的基本操作。针对不同的查询需求,在合适的列上创建和管理索引使用索引优化向导第第1010章章 游标及事务游标及事务1 游标 游标的概念 声明游标 打开游标 数据处理 关闭游标 释放游标2 事务 事务的概念 事务的模式 事务控制3 实训4 小结 实训实训(1)分析第5、6、7章实训中的各种查询需求,确定需要创建索引的列。(2)确定在列上创建聚集索引或非聚集索引。(3)参照【例8.1】【例8.2】【例8.3】,使用T-SQL语句创建索引。(4)使用企业管理器查看、重命名及删除索引。(5
19、)再使用【创建索引向导】重新创建索引。(6)针对相同的查询需求,使用【索引优化向导】获取索引建议。(7)参考【索引优化向导】给出的索引建议,分析原先创建索引过程中的得失。第第1010章章 游标及事务游标及事务1 游标 游标的概念 声明游标 打开游标 数据处理 关闭游标 释放游标2 事务 事务的概念 事务的模式 事务控制3 实训4 小结 实训实训通过了本章的上机实验,学员应该能够掌握创建和管理索引的基本操作。第第1010章章 游标及事务游标及事务1 游标 游标的概念 声明游标 打开游标 数据处理 关闭游标 释放游标2 事务 事务的概念 事务的模式 事务控制3 实训4 小结 本章小结本章小结本章介绍了索引、全文索引与优化,主要内容包括:索引的概念,并介绍了创建索引的优、缺点,以及讨论了哪些列应该考虑建索引和哪些列不考虑建索引。索引的类型,包括聚集索引和非聚集索引。分别使用T-SQL语句、企业管理器和向导创建与管理索引。在维护索引时显示索引的碎块信息、整理碎片、重建索引。索引优化的建议和使用索引优化向导的方法。最后介绍了全文索引,包括使用企业管理器创建全文索引目录,使用向导创建全文索引,使用全文索引的方法。第第8 8章章索引、全文索引与优化索引、全文索引与优化