- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 索引及其应用 索引介绍 索引分类 SQL Server 检索存储的数据的方法 创建索引 设置索引选项 维护索引 用索引优化向导设置索引 索引介绍 数据存储和访问方法 使用索引的意义及代价 使用索引的指导原则 数据存储和访问方法 数据的存储方法 数据行存储在数据页中 每个数据页包括 8 KB 信息,八个邻近的页称为一个扩展盘区 数据行的存储是无序的,数据页也是无序的 数据页并不是通过链表连接 当行插入满的页的时候,数据页拆分 堆是一个表所有数据页的集成 数据的访问方法:两种方法 扫描表中所有的数据页——称为表扫描 开始于表的起点 一页页地扫描表中的所有行 提取符合查询标准的行 使用索引 遍历索引树结构,找到查询所请求的列 只提取符合查询标准的列 使用索引的意义和代价 使用索引的意义 索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。 使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。 使用索引的代价 索引需要占用数据表以外的物理存储空间。 创建索引和维护索引要花费一定的时间。 当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。 使用索引的指导原则 创建索引的列 主键 外键或在表联接操作中经常用到的列 在经常查询的字段上最好建立索引 不创建索引的列 很少在查询中被引用 包含较少的惟一值 定义为 text、ntext 或者 image 数据类型的列 第11章 索引及其应用 索引介绍 索引分类 SQL Server 检索存储的数据的方法 创建索引 设置索引选项 维护索引 用索引优化向导设置索引 索引分类 索引是在数据库表或者视图上创建的对象,目的是为了加快对表或视图的查询的速度 按存储方式分 聚集索引(clustered) 非聚集索引(nonclustered) 按维护和管理角度分 唯一索引 复合索引 系统自动创建的索引 聚集索引 聚集索引的叶节点就是实际的数据页 在数据页中数据按照索引顺序存储 聚集索引(续) 聚集索引的一些事实 行的物理位置和行在索引中的位置是相同的 每个表只能有一个聚集索引 聚集索引的平均大小大约为表大小的5%左右 非聚集索引 非聚集索引(续) 非聚集索引的一些事实和指导原则 若未指定索引类型,则默认为非聚集索引 叶节点页的次序和表的物理存储次序不同 每个表最多可以有249个非聚集索引 在非聚集索引创建之前创建聚集索引 第11章 索引及其应用 索引介绍 索引分类 SQL Server 检索存储的数据的方法 创建索引 设置索引选项 维护索引 用索引优化向导设置索引 SQL Server 检索存储的数据的方法 SQL Server 中 sysindexes 表的使用 不使用索引查找行 使用非聚集索引在堆中查找行 在聚集索引中查找行 使用基于聚集索引的非聚集索引查找行 SQL Server 中 sysindexes 表的使用 sysindexes 表内的页指针定位表和索引的所有页 包括表和索引的重要统计信息 每个表和索引在 sysindexes 表内都有一行记录,通过对象标识列(id)和索引标识列(indid)惟一标识 indid 列:为不同的目标定位数据页 不使用索引查找行 使用非聚集索引在堆中查找行 在聚集索引中查找行 使用基于聚集索引的非聚集索引查找行 第11章 索引及其应用 索引介绍 索引分类 SQL Server 检索存储的数据的方法 创建索引 设置索引选项 维护索引 用索引优化向导设置索引 创建索引 创建和删除索引 创建惟一索引 创建组合索引 获得现有索引的信息 创建和删除索引 创建索引 CREATE [UNIQUE] [CLUSTERED|NONCLUSTERED]INDEX 索引名 ON {表名|视图名}(列[ASC|DESC][ ,...n ])[WITH [PAD_INDEX] [[,] FILLFACTOR = 填充因子 ][[,] IGNORE_DUP_KEY] [[,] DROP_EXISTING] [[,] STATISTICS_NORECOMPUTE][[,]SORT_IN_TEMPDB]][ON 文件组] 创建和删除索引(续) 关于创建索引的事实和指导原则 当在某列创建 PRIMARY KEY 约束或 UNIQUE 约束的时候,SQL Server 自动为此列创建索引 必须是表或视图的拥有者才能创建索引 在创建聚集索引时,将会对表进行复制,对表中的数据进行排序,然后删除原始表。因此,数据库上必须有足够的空闲空间,以容纳数据副本。 一个表最多可以创建249个非聚集索引,默认情况下,创建的索引是非聚集索引。 SQL Server 在 sysindexes 系统表内存储索引信息 创建和删除索引(续)
文档评论(0)