文档详情

数据库索引解析.ppt

发布:2016-10-19约2.74千字共23页下载文档
文本预览下载声明
索 引 学习要点: 索引的概念和优点 索引的分类 索引的创建与管理 索引概述 为什么要创建索引 创建索引的优点 提高查询速度 利用索引的唯一性来控制记录的唯一性 创建索引的原则 在经常用来检索的列上创建索引 (如经常在where子句中出现得列) 在表的主键、外键上创建索引。 在经常用于表间连接的字段上建立索引。 一般而言,如下情况的列不考虑在其上创建索引: 在查询中几乎不涉及的列。 很少有唯一值的列 (即包含太多重复值得列,如性别字段) 数据类型为text、ntext或image的列。 只有较少行数的表没有必要创建索引。 当写的性能比查询更重要时,应少建或不建索引。 索引的分类 聚集索引: 将表中的记录在物理数据页中的位置按索引字段值重新排序,再将重排后的结果写回到磁盘上。每个表只能有一个聚集索引 。 非聚集索引:与表中数据行的实际存储结构无关不会改变数据表中记录的实际存储顺序,每个表可以有多个非聚集索引 。 唯一索引:要求创建索引的关键字段值在表中不能有重复值 。 复合索引:对表创建的索引是基于多个字段对表中的记录排序的。 创建索引 创建索引的三种方法简介: 用企业管理器创建索引 利用Transact-SQL语句创建索引 利用索引优化向导创建索引 用企业管理器创建索引 选择创建索引的表并进入管理索引对话框 管理索引对话框介绍 新建索引 利用Transact-SQL语句创建索引 CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON { table | view } ( column [ ASC | DESC ] [ ...n ] ) [ WITH [PAD_INDEX] [ [,] FILLFACTOR=fillfactor] [[,] IGNORE_DUP_KEY] [[,] DROP_EXISTING] [[,]STATISTICS_NORECOMPUTE] [[,]SORT_IN_TEMPDB]] [ ON filegroup ] 利用Transact-SQL语句创建索引 UNIQUE:用于指定为表或视图创建唯一索引 CLUSTERED:用于指定所创建的索引为聚集索引 NONCLUSTERED:用于指定所创建的索引为非聚集索引 index_name:用于指定所创建的索引名称 table:用于指定创建索引的表名称 ASC|DESC:用于指定某个具体索引列的升序或降序排序方向 Culumn:用于指定被索引的列 PAD-INDEX:用于指定索引中间级中每个页(节点)上保持开放的空间 FILLFACTOR=fillfactor:在创建索引时用于指定每个索引页的数据占索引页大小的百分比 ON filegroup:用于指定存放索引的文件组 例:为sales数据库中的Products表创建一个唯一聚集索引, 依据字ProductID进行排序。 利用索引优化向导创建索引 步骤 打开查询分析器,在查询分析器中输入需要优化索引的查询语句 从“查询”菜单中选择“索引优化向导” 单击“下一步”按钮,出现“选择服务器和数据库”对话框 ,选择数据库 单击“下一步”按钮,出现“指定工作负荷”对话框,选择“SQL Server查询分析器选择” 单击“下一步”按钮,弹出“选择要优化的表”对话框,选择需要优化的表 单击“下一步”按钮,开始分析数据库和工作负荷 单击“下一步”按钮,完成并出现索引建议 管理索引 管理索引工具: 使用企业管理器 使用Transact-SQL语句 使用企业管理器查看、修改和删除索引 查看、修改索引属性 右击表,从弹出的快捷菜单中依次选择“所有任务|管理索引”选项,打开“管理索引” 选中某个索引,单击“编辑”按钮 修改索引名 进入表属性对话框 选择“索引/键” 删除索引 选中要删除的索引名,单击“删除”按钮 使用Transact-SQL语句查看、修改和删除索引 查看索引信息 使用系统存储过程可查看索引信息,其语法形式如下: sp_helpindex [@objname]=’name’ 例:利用系统存储过程查看sales数据库中表Products的索引信息,命令行如下: 修改索引名称 使用系统存储过程sp_rename更改索引的名称, 其语法形式如下: sp_rename [@objname=]’object_name’, [@newname=]’new_name’ [,[@objtype=]’object_type’] 例:将Products表中的索引ProID_ind
显示全部
相似文档