《索引理论知识》PPT课件.ppt_第1页
《索引理论知识》PPT课件.ppt_第2页
《索引理论知识》PPT课件.ppt_第3页
《索引理论知识》PPT课件.ppt_第4页
《索引理论知识》PPT课件.ppt_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

索引的设计,用户对数据库最频繁的操作是进行数据查询。一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索。当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费。 为了提高检索数据的能力,数据库引入了索引机制。索引是数据库中一种特殊数据类型的对象,不单可用来提高表中数据的查询速度,还能够实现某些数据完整性。,索引的意义,索引的基础知识,索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。 一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面。索引就存放在索引页面上, 通常,索引页面相对于数据页面来说小得多。当进行数据检索时,系统先搜索索引页面,从中找到所需数据的指针,再直接通过指针从数据页面中读取数据。,索引的优点,建立索引的目的有如下几点: (1)保证数据记录的唯一性。 (2)可以大大加快数据检索速度。 (3)可以加速表与表之间的连接。 (4)加快ORDER BY和GROUP BY操作。 (5)提高系统性能。,索引的缺点,1.创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 2.索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大 3.当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度,4.1.2 索引的分类,SQL Server中提供了以下几种索引: (1)聚簇索引 (2)非聚簇索引 (3)唯一性索引,4.1.3 索引的操作,2.使用CREATE INDEX创建索引 在Transact-SQL语句中可以用Create Index语句在一个已经存在的表上创建索引,语法结构如下: CREATE UNIQUE CLUSTERED | NONCLUSTERED INDEX index_name ON table | view ( column ASC | DESC ,.n ) WITH ,.n ON filegroup := PAD_INDEX | FILLFACTOR = fillfactor | IGNORE_DUP_KEY | DROP_EXISTING | STATISTICS_NORECOMPUTE | SORT_IN_TEMPDB ,8,索引相关知识,索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。 表或视图可以包含以下类型的索引: 聚集 聚集索引根据数据行的键值在表或视图中排序和存储这些数据行。索引定义中包含聚集索引列。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序排序。 只有当表包含聚集索引时,表中的数据行才按排序顺序存储。如果表具有聚集索引,非聚集索引则该表称为聚集表。如果表没有聚集索引,则其数据行存储在一个称为堆的无序结构中。 非聚集 具有独立于数据行的结构。非聚集索引包含非聚集索引键值,并且每个键值项都有指向包含该键值的数据行的指针。 从非聚集索引中的索引行指向数据行的指针称为行定位器。行定位器的结构取决于数据页是存储在堆中还是聚集表中。对于堆,行定位器是指向行的指针。对于聚集表,行定位器是聚集索引键。 在 SQL Server 2005 中,可以向非聚集索引的叶级别添加非键列以跳过现有的索引键限制(900 字节和 16 键列),并执行完整范围内的索引查询。,9,创建原则及注意事项 下列情况适合建立索引: 经常被查询搜索的列,如经常在where子句中出现的列。 在ORDER BY子句使用的列。 外键或主键列。 下列情况不适合建立索引: 在查询中很少被引用的列。 包含太多重复值的列。 数据类型为bit、text、image 等的列不能建立索引。,10,创建索引,(1)创建聚集索引 PRIMARY KEY 和 UNIQUE 约束 在创建 PRIMARY KEY 约束时,如果不存在该表的聚集索引且未指定唯一聚集索引,则将自动对一列或多列创建唯一聚集索引。 create clustered index IX_Course_Cno on Course(Cno) (2)为Course表的Cno列创建非聚集索引 CREATE INDEX IX_Course_Cname ON Course(Cname) (3)为SC表的Sno和Cno列创建非聚集组合索引。 CREATE NONCLUSTERED INDEX IX_Sc_Sno_Cno ON SC(Sno, Cno) (4)为 Course表的 Cname 列创建唯一的非聚集索引。 CREATE UNIQUE INDEX UI_Course_Cname ON Course(Cname),11,修改索引 (1)禁用索引 ALTER INDEX IX_Course_Cno on Course DISABLE (2)重新生成索引 ALTER INDEX IX_Course_Cno on Course REBUILD ALTER INDEX ALL ON course REBUILD 删除索引 当一个索引不再需要时,可以将其从数据库中删除,以回收它当前使用的磁盘空间。这样数据库中的任何对象都可以使用此回收的空间。 drop index IX_Course_Cn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论