《项目8 索引的创建与管理ppt课件.ppt》由会员分享,可在线阅读,更多相关《项目8 索引的创建与管理ppt课件.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在此输入您的封面副标题项目8 索引的创建与管理数据库技术及应用数据库技术及应用 项目任务项目任务l任务一:索引基本知识介绍l任务二:索引创建l任务三:索引修改l任务四:索引分析l任务五:索引维护项目八项目八 索引的创建与管理索引的创建与管理任务一:索引基本知识介绍任务一:索引基本知识介绍1、什么是索引?、什么是索引?索引与书籍的目录相似,可以帮助我们快速地找到需要的内容。索引是以表中列为基础的数据对索引是以表中列为基础的数据对象,保存了表中排序的索引项,并且记录了索象,保存了表中排序的索引项,并且记录了索引列在数据表中的物理存储位置,实现了表中引列在数据表中的物理存储位置,实现了表中数据的逻辑
2、排序数据的逻辑排序。其主要目的是提高SQL Server系统的性能,加快数据的查询速度和减少系统的响应时间。索引通过数据表中的索引关键字指向表中的记录,使得数据库引擎不需要扫描整张数据表就能快速定位所需要的数据行。任务一:索引基本知识介绍任务一:索引基本知识介绍2、索引的优缺点、索引的优缺点使用索引具有如下优点或者用途:(1)索引能提高查询表内数据的速度;(2)能加快表与表之间的连接速度,如将表中的外键制作成索引,能加快主键表与外键表的连接。虽然索引有显著的优点,但是也会带来新的问题:(1)创建和维护索引增加了额外的时间开销;(2)索引会占用一定的存储空间,占用空间过大时会影响数据库的性能。任
3、务一:索引基本知识介绍任务一:索引基本知识介绍3、索引的分类、索引的分类(1)聚集索引聚集索引中索引的顺序与数据表中的记录的物理顺序相同聚集索引中索引的顺序与数据表中的记录的物理顺序相同,比如我们字典中的拼音查找法目录就是聚集索引,它的顺序和字典中内容的顺序相同。在SQL Server中每个表只能每个表只能建一个聚集索引建一个聚集索引,当表中设有主键时,聚集索引将自动隐式地被创建。聚集索引通常情况下应在如下的列上创建:l字段值唯一,尤其是主键,或者绝大部分字段值不重复的列;l按顺序被访问的列,如order by子句后的列;l在结果集中经常被查询的列。任务一:索引基本知识介绍任务一:索引基本知识
4、介绍3、索引的分类、索引的分类(2)非聚集索引非聚集索引的索引顺序与表中记录的物理顺序可以不同非聚集索引的索引顺序与表中记录的物理顺序可以不同,比如我们字典中的部首查找法目录就是非聚集索引。在SQL Server中每个表可以建一个或多个非聚集索引可以建一个或多个非聚集索引,在默认情况下,所创建的索引都是非聚集索引,在每个表或视图上可以创建不多于249个非聚集索引。非聚集索引比聚集索非聚集索引比聚集索引需要更多的存储空间,并且检索效率比聚集索引低引需要更多的存储空间,并且检索效率比聚集索引低。非聚集索引通常情况下应在如下的列上创建:l绝大部分字段值不重复的列;l涉及到列的查询结果较少的列;l在w
5、here语句中精确匹配查询的列。任务一:索引基本知识介绍任务一:索引基本知识介绍4、创建索引的基本原则?、创建索引的基本原则?在创建索引时要考虑是否合适,一般情况下需注意如下原则:(1)定义有主键或外键的数据列一定要建立索引;(2)对于经常查询的数据列最好建立索引;(3)对于需要在指定范围内快速或频繁查询的数据列最好建立索引;(4)经常使用在where子句中的数据列最好建立索引;(5)对于那些较少涉及的列或重复值较多的列最好不建立索引。任务二:索引创建任务二:索引创建实例实例1、在、在student表中创建一个基于姓名的非聚表中创建一个基于姓名的非聚集索引,设索引名为集索引,设索引名为IX_s
6、tuname。方法一、采用方法一、采用SSMS创建创建(1)在“对象资源管理器”中,展开“grade_manage”数据库,并展开“表”;(2)右键单击“student”,在弹出的快捷菜单中选择“设计”命令;(3)单击工具栏上的“管理索引和键”按钮,出现如图8-1所示的“索引/键”对话框;图8-1中显示student表上已经建立了一个索引,是建立在主键列sno上的,默认名为“PK_student_DDDF644607020F21”(系统自动生成);(4)在图8-1中,单击“添加”按钮,出现如图8-2所示的对话框;(5)单击如图8-2中“列”行右侧的按钮,出现如图8-3所示的“索引列”对话框;(
7、6)在“列名”下选择“sname”列,在排序顺序下可选择“升序”或者“降序”,这里选择升序;(7)点击“确定”,在出现的如图8-4所示的对话框中,将“是唯一的”选择“否”,并修改“名称”为“IX_stuname”;(8)单击“关闭”按钮,并单击SSMS工具栏上的“保存”按钮保存即完成索引的创建。任务二:索引创建任务二:索引创建实例实例1、在、在student表中创建一个基于姓名的非聚表中创建一个基于姓名的非聚集索引,设索引名为集索引,设索引名为IX_stuname。方法一、采用方法一、采用SQL语句语句创建创建任务二:索引创建任务二:索引创建实例实例1、在、在student表中创建一个基于姓名
8、的非聚表中创建一个基于姓名的非聚集索引,设索引名为集索引,设索引名为IX_stuname。方法一、采用方法一、采用SQL语句语句创建创建任务二:索引创建任务二:索引创建实例实例2、在、在course表中创建一个基于课程名的唯表中创建一个基于课程名的唯一索引(设课程名称值唯一)。一索引(设课程名称值唯一)。任务三:索引修改任务三:索引修改实例实例3、将、将student表中创建的索引表中创建的索引IX_stuname重命名为重命名为“IX_STUname”。方法一、采用方法一、采用SSMS向导修改向导修改具体操作步骤如下:(1)在SSMS中,采用与创建索引同样的方法,选择student表,在“索
9、引/键”对话框中,将索引名修改为“IX_STUname”,如图8-10所示;(2)点击“关闭”,将弹出如图8-11所示的提示框,点击“是”,完成重命名。任务三:索引修改任务三:索引修改实例实例3、将、将student表中创建的索引表中创建的索引IX_stuname重命名为重命名为“IX_STUname”。方法二、采用方法二、采用SQL语句修改语句修改任务三:索引修改任务三:索引修改实例实例4、将、将course表中创建的索引表中创建的索引IX_cname删去。删去。方法一、采用方法一、采用SSMS向导修改向导修改具体操作步骤如下:(1)在“对象资源管理器”中展开course表,右键单击“cou
10、rse”,并在弹出的快捷菜单中选择“设计”选项;(2)单击SSMS工具栏菜单中的“管理索引和键”按钮,打开“索引/键”对话框;(3)在“选定的主/唯一键或索引”列表的下面选择要删除的索引“IX_cname”;(4)单击“删去”,然后点击“关闭按钮”,最后点击SSMS工具栏上的“保存”按钮即可。任务三:索引修改任务三:索引修改实例实例4、将、将course表中创建的索引表中创建的索引IX_cname删去。删去。方法二、采用方法二、采用SQL语句语句删除删除删去索引的SQL语法如下所示。dropindex.任务四:索引分析任务四:索引分析 索引分析的主要任务是通过查询实例来验证建立的索引是否能提高
11、查询速度,如果建立的索引不如扫描整张表的速度,那么SQL Server不会通过索引的方法来查询数据。所以,索引建立后要通过索引分析来评估索引的性能。1、显示查询计划、显示查询计划其设置命令如下:set showplan_all on;on表示显示查询计划,off表示关闭显示。实例实例5、在、在student表中查询姓表中查询姓“李李”学生的信息,并分析哪些索引学生的信息,并分析哪些索引被系统采用。被系统采用。任务四:索引分析任务四:索引分析2、显示磁盘活动量、显示磁盘活动量其设置命令如下:set statistics io on;on表示显示查询计划,off表示关闭显示。实例实例6、在、在st
12、udent表中查询姓表中查询姓“李四李四”学生的信息,并分析执行该学生的信息,并分析执行该数据查询所花费的磁盘活动量信息。数据查询所花费的磁盘活动量信息。任务五:索引维护任务五:索引维护索引是建立在基本表上的,那么对基本表数据的更新必然会对索引造成影响,为了得到更好的性能,需要定期对索引进行维护。1、更新统计信息、更新统计信息 实例实例7、通过设置、通过设置grade_manage数据库的属性实现统计的自动更新。数据库的属性实现统计的自动更新。操作步骤:(1)在“对象资源管理器”中展开“数据库”;(2)右键单击“grade_manage”数据库,在弹出的快捷菜单中选择“属性”命令,打开如图8-
13、20所示的数据库属性对话框;(3)在图8-20的“选择页”选项组中单击“选项”,将“自动创建统计信息”和“自动更新统计信息”行的值设为“True”,如图8-21所示;(4)单击“确定”按钮完成。值得注意的是,当数据库操作比较集中的时间段应该尽量避免频繁地进行索引统计的更新操作。任务五:索引维护任务五:索引维护实例实例8、使用、使用update statistics语句更新语句更新grade_manage数据库中的数据库中的course表的表的PK_course索引的统计信息。索引的统计信息。任务五:索引维护任务五:索引维护2、扫描表、扫描表实例实例9、使用、使用dbcc showcontig语句获取语句获取grade_manage数据库中数据库中course表的表的PK_course索引碎片信息。索引碎片信息。任务五:索引维护任务五:索引维护3、碎片整理、碎片整理实例实例10、使用、使用dbcc indexdefrag语句对语句对grade_manage数据库中数据库中course表的表的PK_course索引进行碎片整理。索引进行碎片整理。总结与反思总结与反思l掌握索引的工作原理掌握索引的工作原理l学会在学会在SQL Server 2008SQL Server 2008中创建和使用索引中创建和使用索引