SQLserver课件第8章索引.ppt

SQLserver课件第8章索引.ppt

ID:52063355

大小:330.34 KB

页数:13页

时间:2020-03-31

SQLserver课件第8章索引.ppt_第1页
SQLserver课件第8章索引.ppt_第2页
SQLserver课件第8章索引.ppt_第3页
SQLserver课件第8章索引.ppt_第4页
SQLserver课件第8章索引.ppt_第5页
资源描述:

《SQLserver课件第8章索引.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章索引SQLSERVER教程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用CREATEINDEX命令创建索引CREATE[UNIQUE][CLUSTERED

4、NONCLUSTERED]INDEXindex_nameON{table

5、view}(column[ASC

6、DESC][,...n])[WITH[PAD_INDEX][[,]FILLFACTOR=fillfact

7、or][[,]IGNORE_DUP_KEY][[,]DROP_EXISTING][[,]SORT_IN_TEMPDB]][ONfilegroup]PAD_INDEX:指定填充索引的内部节点的行数,至少应大于等于两行。FILLFACTOR=fillfactor:称为填充因子,它指定创建索引时,每个索引页的数据占索引页大小的百分比。对于那些频繁进行大量数据插入或删除的表,在建索引时应该为将来生成的索引数据预留较大的空间,即将fillfactor设得较小,否则,索引页会因数据的插入而很快填满,并产生分页,而分页会大大增加系统的开销。但设得过小,又会浪费大量的磁盘

8、空间,降低查询性能。IGNORE_DUP_KEY:控制当往包含于一个惟一约束中的列中插入重复数据时SQLServer所作的反应。DROP_EXISTING:指定要删除并重新创建簇索引。SORT_IN_TEMPDB:指定用于创建索引的分类排序结果将被存储到Tempdb数据库中。如果Tempdb数据库和用户数据库位于不同的磁盘设备上,那么使用这一选项可以减少创建索引的时间,但它会增加创建索引所需的磁盘空间。8.2.2用企业管理器创建索引1.用索引创建向导创建索引2.直接创建索引(右键所有任务管理索引)3.在企业管理器中创建索引8.3查看与修改索引8.3.1

9、用企业管理器查看修改索引(右键所有任务管理索引编辑<可以编辑sql>)8.3.2用存储过程Sp_helpindex查看索引可以返回表的所有索引的信息。sp_helpindex[@objname=]'name'其中[@objname=]'name'子句指定当前数据库中的表的名称。例8-4:查看表orders的索引。execsp_helpindexorders8.3.3用存储过程Sp_rename更改索引名称例8-5更改表中的索引orders_quan名称为orders_quantity。sp_renameorders.[orders_quan]','o

10、rders_quantity','index'8.4删除索引8.4.1用企业管理器删除索引8.4.2用DROPINDEX命令删除索引DROPINDEX命令可以删除一个或多个当前数据库中的索引。DROPINDEX'tablename.indexname'[,...n]DROPINDEX命令不能删除由CREATETABLE或ALTERTABLE命令创建的PRIMARYKEY或UNIQUE约束索引,也不能删除系统表中的索引。例8-6:删除表products中的索引p_quantity。dropindexproducts1.p_quantity8.5索引调整向导8

11、.5.1索引与系统性能索引可以加快数据检索的速度,但它会使数据的插

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。