下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大多数SQLServer表需要索引来提高数据的访问速度,如果没有索引,SQLServer要全表进行扫描读取表中的每一个记录才能找到所要的数据。索引可以分为簇索引和非簇索 引:簇索引通过重排表中的数据来提高数据的访问速度;而非簇索引那么通过维护表中的数据指针来提高数据的访问速度。1. 索引的体系结构SQLServer 2005在硬盘中用8KB页面在数据库文件内存放数据。缺省情况下这些页面 及其包含的数据是无组织的。为了使混乱变为有序,就要生成索引。生成索引后,就有了索引页和数据页之分:数据页用来保存用户写入的数据信息;索引页存放用于检索列的数据值清单关键字和索引表中该值所在纪录的地址指针。索引分
2、为簇索引和非簇索引,簇索引 实质上是将表中的数据排序,就好似是字典的索引目录。非簇索引不对数据排序,它只保存了数据的地址。向一个带簇索引的表中插入数据,当数据页到达100%寸,由于页面没有空间插入新的的纪录,这时就会发生分页,SQL Server将大约一半的数据从满页中移到空页中,从而生成两个1/2满页。这样就有大量的空的数据空间。簇索引是双向链表, 在每一页的头部保存了前一页、后一页以及分页后数据移出的地址。由于新页可能在数据库文件中的任何地方,因此页面的链接不一定指向磁盘的下一个物理页。链接可能指向了另一个区域, 这就形成了分块,从而减慢了系统的速度。对于带簇索引和非簇索引的表来说,非簇索
3、引的关键字是指向簇索引的,而不是指向数据页的本身。为了克服数据分块带来的负面影响,需要重构表的索引,这是非常费时的,因此只能 在需要时进行。可以通过DBCC SHOWCONTG定是否需要重构表的索引。2. DBCC SHOWCONTIG法下面举例来说明 DBCC SHOWCONTIGDBCC REDBINDEX使用方法。以应用程序中的 Employee数据表作为例子,在 SQL Server的Query analyzer 输入命令:use database_name declare table_id int set tableJd=objectJd('Employee') db
4、cc showcontig(table_id)输出结果:DBCC SHOWCONTIG scanning 'Employee'table. Table: 'Employee' (1195151303); index ID: 1, database ID: 53TABLE level scan performed.- Pages Scanned179- Extents Scanned:24- Extent Switches24- Avg. Pages per Extent: 7.5- Scan Density Best Count:Actual Count.: 9
5、2.00% 23:25- Logical Scan Fragmentation:0.56%- Extent Scan Fragmentation:12.50%- Avg. Bytes Free per Page:552.3- Avg. Page Density (full):93.18%DBCC execution completed.If DBCC printed error messages, contact your system administrator.通过分析这些结果可以知道该表的索引是否需要重构。如下描述了每一行的意义:信息描述Pages Scanned表或索引中的长页数Ext
6、ents Scanned表或索引中的长区页数Extent Switches DBCC遍历页时从一个区域到另一个区域的次数Avg. Pages per Extent相关区域中的页数Scan DensityBest Count:Actual CountBest Count是连续链接时的理想区域改变数,ActualCount是实际区域改变,Scan Density 为100%表示没有分块。Logical Scan Fragmentation页的百分比Extent Scan Fragmentation扫描索引页中失序不实际相邻和包含Avg. Bytes Free per Page扫描页面中平均链路中所
7、有链接页的区域数自由字节数Avg. Page Density (full)平均页密度,表示页有多满从上面命令的执行结果可以看的出来,Best count为23而Actual Count为25。这说明orders表有分块,需要重构表索引。下面通过DBCC DBREINDEX重构表的簇索弓I。3. DBCC DBREINDEX 用法重建指定数据库中表的一个或多个索弓I。DBCC DBREINDEX('database.owner.table_name',index_name,fillfactor )'database.owner.tablename'是要重建其指定的
8、索引的表名。数据库、所有者和表名必须符合标识符的规那么。有关更多信息,请参见使用标识符。如果提供database 或owner局部,那么必须使用单引 号(') 将整个database.owner.table_name 括起来。如果只指定 table_name ,那么不需要单引号。index_name是要重建的索引名。索引名必须符合标识符的规那么。如果未指定index_name或指定为,就要对表的所有索引进行重建。fillfactor是创立索引时每个索引页上要用于存储数据的空间百分比。fillfactor替换起始填充因子以作为索引或任何其它重建的非聚集索引因为已重建聚集索引的新默认值。如
9、果 fillfactor 为0, DBCC DBREINDE疝创立索引时将使用指定的起始fillfactor 。同样在Query Analyzer 中输入命令:dbcc dbreindex('database_name.dbo.Employee',",90)然后再用DBCC SHOWCONTa重构索引后的结果:DBCC SHOWCONTIG scanning 'Employee' table.Table: 'Employee' (1195151303); index ID: 1, database ID: 53TABLE level scan performed.- Pages Scanned178- Extents Scanned: 23- Extent Switches22- Avg. Pages perExtent:7.7- Scan Density Best Count:ActualCount.: 100.00% 23:23- Logical ScanFragmentation: 0.00%- Extent ScanFragmentation: 0.00%- Avg. Bytes Free perPage
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度水电工程招投标合同5篇
- 2025年度新能源车辆采购及运营合同3篇
- 2024食堂食品安全保障与供货合同
- 2025年度智能家居系统采购与施工安装合同3篇
- 年度科创大数据市场分析及竞争策略分析报告
- 年度分步重复光刻机竞争策略分析报告
- 2025年私人房产交易合同范本下载6篇
- 2024-2025学年高中英语Unit4Learningeffectively单元复习课教师用书教案新人教版选修10
- 二零二四年南京二手房买卖合同及物业交接细则3篇
- 二零二五年度新能源电动车销售及分期付款协议2篇
- GA 1551.5-2019石油石化系统治安反恐防范要求第5部分:运输企业
- 拘留所教育课件02
- 冲压生产的品质保障
- 《肾脏的结构和功能》课件
- 2023年湖南联通校园招聘笔试题库及答案解析
- 上海市徐汇区、金山区、松江区2023届高一上数学期末统考试题含解析
- 护士事业单位工作人员年度考核登记表
- 天津市新版就业、劳动合同登记名册
- 产科操作技术规范范本
- 人教版八年级上册地理全册单元测试卷(含期中期末试卷及答案)
- 各种焊工证件比较和释义
评论
0/150
提交评论