文档详情

数据索引和数据完整性.ppt

发布:2017-11-15约7.44千字共23页下载文档
文本预览下载声明
思考: 例如:我们要在新华字典里查“安”的意思? 例如:我们要查第9章第2节的内容是什么? 索引分类 聚集索引 正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。 非聚集索引 不使用索引查找行( 表扫描) 在聚集索引中查找行 使用非聚集索引在堆中查找行(续) 使用聚集索引场合 使用下列运算符返回一个范围值的查询:BETWEEN、、=、? ?和? ?=。 返回大型结果集的查询 经常被使用联接或GROUP? ?BY子句的查询访问的列;一般来说,这些是外键列。对ORDER? ?BY? ?或? ?GROUP? ?BY? ?子句中指定的列进行索引 非聚集索引使用场合 表更新频率较低,但是包含大量数据 已经知道查询结果不会返回大型结果集 需要对返回确切结果的查询搜索条件(如where子句)频繁涉及的列进行索引 需要对包含多个不同值的列进行索引 使用索引的指导原则 经常要在搜索的列上创建索引,如: 主键所在的列 外键或在连接表中经常使用的列 搜索键值范围的列 以排序次序访问的列 在聚合过程中被划分为一组的列 不要索引的列: 在查询中很少引用的列 包含很少唯一值的列 注意: (1)索引可以加快查询速度,但是带索引的表会在数据库中占更多的空间;为了维护索引,对数据进行插入、更新、删除操作的命令所花费的时间会更长。 (2) sql server会为表中设有primary key和unique约束的列自动创建索引。 练习: 以学生表“姓名”列建立索引。 在教师任课表上按照教师编号、课程号、班号建立唯一聚集复合索引。 在选课表上按学号建立非聚集索引。 完整性分类: 实体 域 参照 用户定义 约束机制 主键约束 唯一约束 检查约束 默认值约束 外键约束 默认与规则 默认是数据库对象 SQL语句来创建默认的命令: create default name as default_description 规则:是一种数据库对象 CREATE RULE RULE_NAME as expression 本章概述 本章主要介绍了如果在SQL Server 通过创建索引来提高数据访问的性能。本章讲解了聚集索引和非聚集索引的概念以及创建方法,同时说明了如何优化索引以及如何创建全文索引。索引对于数据库的优化而言是一个重要内容,因此本章需要学生能够理解为什么要使用不同的索引,以及如何为数据库规划索引。 教学目标: 了解索引规划 掌握创建索引 掌握优化索引 了解全文搜索 教学重点: 聚集索引和非聚集索引。 优化索引。 教学难点: 学生对于选择表中的那一列建立何种索引会感到困难。 学生对于索引为什么可以提高查询速度会难以理解。 重点: 在没有索引的情况下在堆中找到符合查询条件的数据行的过程; 注意: 在没有索引的情况下,只有表扫描能检索到行; 课堂提问: 检索返回的行的次序是否按照它们插入表中的次序而决定的? 不是。因为中间可能经过删除操作,而后插入的行会填补被删除的行的位置,使得次序不可预知。 重点: 在有聚集索引的情况下找到符合查询条件的数据行的过程的幻灯片动画。 重点: 在有非聚集索引的情况下在堆中找到符合查询条件的数据行的过程的幻灯片动画。 索引 知识点: 了解索引的基础知识、建立索引的原则 理解聚集索引、非聚集索引概念 掌握索引的创建(基本) 理解数据完整性 默认和规则 SQL Server 访问数据的方式 表扫描 SQL Server 扫描表的 所有页 索引 SQL Server 使用索引 页找到行 SQL Server 访问数据的方式 没有聚集索引的表 不按特定顺序存储的页 堆 堆 IAM 页 数据页 id index_id = 0 first_iam_page sys.partitions 堆 127号扩展盘区 id indid = 0 First IAM sysindexes IAM 128号扩展盘区 129号扩展盘区 01 02 03 … … Smith Ota Jones … ... … … … ... ... 01 02 03 04 … Akhtar Funk Smith Martin ... … … … ... ... 01 02 03 … … Rudd White Barr ... ... … … … ... ... 01 02 03 … … Con Funk White ... ... … … … ... ... 01 02 03 … … Smith Ota Jones … ... … … … ... ... 01 02 03 04 … Akhtar Funk Smith Marti
显示全部
相似文档