《CH6》-公开·课件设计.pptVIP

  • 0
  • 0
  • 约2.68千字
  • 约 26页
  • 2018-12-03 发布于广西
  • 举报
创建与管理索引 刘国柱 联系方式Liu_guozhu@ 目录 1: 数据库中数据的存储形式 2: 创建索引的必要性与索引类型 3: 簇索引与非簇索引 4: 全文索引 NO:1 上节回顾 上节回顾 视图概念 创建视图 视图的应用 修改与删除视图 NO:1 数据库中数据 的存储形式 数据库中数据的存储形式 表的行构成数据页,页集合构成堆 每个表的数据存储在8KB的数据页的集合中,这些数据页的集合称为区域(extent) 数据行不按特定的顺序存放,数据页也没特定的顺序 数据页不在一个链表中连接 当数据行插入一页,而该页满时,数据页被分割 数据库中数据的存储形式 表扫描:扫描表的所有数据页 从表的起点开始,逐页扫描表的全部行,取出满足查询条件的行 使用索引 遍历索引树结构,查找查询请求的行,只取出满足查询条件的行 NO:2 创建索引的 必要性与索引类型 创建索引的必要性与索引类型 -为什么创建索引 使用索引指向数据页上特定信息的位置,不必扫描表的全部数据。要求考虑: 索引通常加速连接表和执行排序或组合操作的查询 如果在创建索引时定义唯一性,索引强制数据行的唯一性 索引按上升排序顺序创建和维护 索引最好在高度选择性的列上创建 创建索引的必要性与索引类型 -为什么不创建索引 索引要耗用磁盘空间,并引起系统开销和增加维护的费用。要求考虑: 在修改一个索引列的数据时,SQL更新相关的索引。 维护索引要求空间和资源,所以不要创建不 经常使用的索引 小表上的索引没什么好处 创建索引的必要性与索引类型 - 使用场合 可以索引的列: 主键和外键 频繁在范围中搜索的列 频繁按排序顺序访问的列 不可以索引的列: 在查询中很少引用的列 含有很少唯一值的列 以bit,image,text数据类型定义的列 创建索引的必要性与索引类型 -索引类型 唯一索引:要求所有数据行中任意两行中的索引列不能存在重复值 非唯一索引:不存在上述限制的索引 簇索引:行的物理顺序与索引顺序完全相同 非簇索引:与上述相反 单列索引:对表中单个列进行索引 复合索引:对表中两列或多列进行复合索引 全文索引 NO:3 簇索引与 非簇索引 簇索引与非簇索引 -簇索引 行的物理位置与索引顺序一致 一个表只能创建一个簇索引 由于创建时要改变物理顺序,所以应该在创建非簇索引之前创建 优点:比非簇索引检索快,适用于检索连续键值 簇索引与非簇索引 -簇索引工作过程 簇索引与非簇索引 -非簇索引 非簇索引代表行的逻辑顺序 非簇索引的查找比簇索引慢,尤其是在查找一个范围时 优点:维护一个非簇索引的成本较低 簇索引与非簇索引 -非簇索引的工作过程 簇索引与非簇索引 -创建索引 语法: CREATE [UNIQUE][clustered | nonclustered] index index_name ON table(column [ASC | DESC][,...n]) [WITH [pad_index] [,fillfactor=fillfactor] [,ignore_dup_key] [,drop existing] [,statistics_norecompute] [,sorted_data_reopg] ] [on filegroup] 簇索引与非簇索引 -说明 [UNIQUE][clustered | nonclustered]:索引的类型,默认为非簇索引 table(column [ASC | DESC][,...n]):说明索引的列,最多为16列(用于复合索引) fillfactor=fillfactor:1~100 说明索引页面页级填充率(填充因~子),默认为0 pad_index:ON | OFF指出索引填充,默认为OFF ignore_dup_key: ON | OFF 指定重复值是否能够被插入或不能 drop existing: ON | OFF 说明先删除表的簇索引再重新构造 statistics_norecompute:禁止SQL根据需要自动重新构造过期的索引信息 sorted_data_reopg:消除创建簇索引时执行的排序 簇索引与非簇索引 示例1: 为STUDENT_TABLE表的PERSON_ID字段创建一个索引StudentIndex_1 create index StudentIndex_1 on STUD

文档评论(0)

1亿VIP精品文档

相关文档