SQLserver课件第8章索引.ppt

上传人:小飞机 文档编号:6520852 上传时间:2023-11-08 格式:PPT 页数:13 大小:330.35KB
返回 下载 相关 举报
SQLserver课件第8章索引.ppt_第1页
第1页 / 共13页
SQLserver课件第8章索引.ppt_第2页
第2页 / 共13页
SQLserver课件第8章索引.ppt_第3页
第3页 / 共13页
SQLserver课件第8章索引.ppt_第4页
第4页 / 共13页
SQLserver课件第8章索引.ppt_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《SQLserver课件第8章索引.ppt》由会员分享,可在线阅读,更多相关《SQLserver课件第8章索引.ppt(13页珍藏版)》请在三一办公上搜索。

1、,第八章 索 引,SQL SERVER教程,8.1了解索引8.2 创建索引8.3 查看与修改索引8.4 删除索引8.5 索引调整向导8.6 创建和使用图表,目 录,8.1了解索引,索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。一个表的存储是由两部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面。索引就存放在索引页面上。通常,索引页面相对于数据页面来说小得多。当进行数据检索时,系统先搜索索引页面,从中找到所需数据的指针,再直接通过指针从数据页面中读取

2、数据。从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显然较没有目录的书方便、快捷。,2.簇索引:簇索引对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即簇索引与数据是混为一体的,它的叶节点中存储的是实际的数据。由于簇索引对表中的数据一一进行了排序,因此用簇索引查找数据很快。但由于簇索引将表的所有数据完全重新排列了,它所需要的空间也就特别大,大概相当于表中数据所占空间的120%。表的数据行只能以一种排序方式存储在磁盘上,所以一个表只能有一个簇索引。3.非簇索引:非簇索引具有与表的数据完全分离的结构,使用非簇索引不用将物理数据页中的数据按列排序。由

3、于非簇索引使用索引页存储,因此它比簇索引需要更多的存储空间,且检索效率较低。但一个表只能建一个簇索引,当用户需要建立多个索引时,就需要使用非簇索引了。从理论上讲,一个表最多可以建249 个非簇索引。,8.2 创建索引,8.2.1 用CREATE INDEX 命令创建索引CREATE UNIQUE CLUSTERED|NONCLUSTEREDINDEX index_nameON table|view(column ASC|DESC,.n)WITH PAD_INDEX,FILLFACTOR=fillfactor,IGNORE_DUP_KEY,DROP_EXISTING,SORT_IN_TEMPDB

4、 ON filegroup,PAD_INDEX:指定填充索引的内部节点的行数,至少应大于等于两行。FILLFACTOR=fillfactor:称为填充因子,它指定创建索引时,每个索引页的数据占索引页大小的百分比。对于那些频繁进行大量数据插入或删除的表,在建索引时应该为将来生成的索引数据预留较大的空间,即将fillfactor 设得较小,否则,索引页会因数据的插入而很快填满,并产生分页,而分页会大大增加系统的开销。但设得过小,又会浪费大量的磁盘空间,降低查询性能。IGNORE_DUP_KEY:控制当往包含于一个惟一约束中的列中插入重复数据时SQL Server 所作的反应。DROP_EXISTI

5、NG:指定要删除并重新创建簇索引。SORT_IN_TEMPDB:指定用于创建索引的分类排序结果将被存储到Tempdb 数据库中。如果Tempdb 数据库和用户数据库位于不同的磁盘设备上,那么使用这一选项可以减少创建索引的时间,但它会增加创建索引所需的磁盘空间。,8.2.2 用企业管理器创建索引,1 用索引创建向导创建索引 2 直接创建索引(右键所有任务管理索引)3 在企业管理器中创建索引,8.3 查看与修改索引,8.3.1 用企业管理器 查看修改索引(右键所有任务管理索引编辑)8.3.2 用存储过程Sp_helpindex 查看索引可以返回表的所有索引的信息。sp_helpindex objn

6、ame=name其中objname=name子句指定当前数据库中的表的名称。例8-4:查看表orders 的索引。exec sp_helpindex orders 8.3.3 用存储过程Sp_rename 更改索引名称例8-5 更改表中的索引orders_quan 名称为orders_quantity。sp_rename orders.orders_quan,orders_quantity,index,8.4 删除索引,8.4.1 用企业管理器 删除索引8.4.2 用DROP INDEX 命令删除索引DROP INDEX 命令可以删除一个或多个当前数据库中的索引。DROP INDEX tabl

7、ename.indexname,.nDROP INDEX 命令不能删除由CREATE TABLE 或ALTER TABLE 命令创建的PRIMARY KEY 或UNIQUE 约束索引,也不能删除系统表中的索引。例8-6:删除表products 中的索引p_quantity。drop index products1.p_quantity,8.5 索引调整向导,8.5.1 索引与系统性能索引可以加快数据检索的速度,但它会使数据的插入、删除和更新变慢。尤其是簇索引,数据是按照逻辑顺序存放在一定的物理位置,当变更数据时,根据新的数据顺序,需要将许多数据进行物理位置的移动,这将增加系统的负担。对非簇索引

8、,数据更新时也需要更新索引页,这也需要占用系统时间。因此在一个表中使用太多的索引,会影响数据库的性能。对于一个经常会改变的表,应该尽量限制表只使用一个簇索引和不超过34 个非簇索引。对事务处理特别繁重的表,其索引应尽量不超过3 个。,8.5.2 索引调整向导,索引调整向导可以帮助选择并创建一个最优化的索引集合,以提高数据库的性能。要使用索引调整向导需要一个工作负荷记录。工作负荷记录由SQL脚本或SQL Server Profiler(SQL SERVER监视器)创建的存储在文件或表中的跟踪组成。如果没有现存的针对要进行索引调整的数据库或表的工作负荷记录,可以通过SQL Server Profiler来创建一个。索引调整向导可以使用查询优化器根据工作负荷记录分析索引的性能并提出相应的调整建议。可以立即让系统根据建议修改索引,也可以将任务列入计划以后再创建。8.5.3 使用索引调整向导,8.6 创建和使用图表,图表是SQL Server 特有的一种数据库对象,它提供给用户直观的管理数据库表的方式。通过图表,用户可以直观地创建、编辑数据库表之间的关系,也可以编辑表及其列的属性。,结 束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号