第8章索引分析.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章索引分析

2.利用系统存储过程更名索引 利用系统提供的存储过程sp_rename可以对索引进行重命名 例:将student表中的索引idx_name更名为idx_stu_name。 Exec sp_rename ‘student.idx_name’ ,’idx_stu_name’ 1.利用对象管理器删除索引 选择“数据库”| student |“表”| dbo.stu_info |“索引”| idx_name,单击鼠标右键,然后从弹出的快捷菜单中选择“删除”命令,打开“删除对象”对话框。 删除索引 2.利用T-SQL语句删除索引 删除索引的语法格式如下: DROP INDEX table_name.index_name [,...n ] 其中,index_name为所要删除的索引的名称。删除索引时,不仅要指定索引,而且必须要指定索引所属的表。 【例9-5】删除stu_info表中的idx_name索引。 DROP INDEX stu_info.idx_name DROP INDEX不能删除系统自动创建的索引,如主键或唯一性约束索引,也不能删除系统表中的索引。 某些不合适的索引影响到SQL Server的性能,随着应用系统的运行,数据不断地发生变化,当数据变化达到某一个程度时将会影响到索引的使用。这时需要对索引进行维护。索引的维护包括重建索引和更新索引统计信息。 维护索引 随着另外应用在执行大块I/O的时候,重建非聚集索引可以降低分片,重建索引实际上是重新组织B-树空间。 无论何时对基础数据执行插入、更新或删除操作,SQL Server 2008数据库引擎都会自动维护索引。 在SQL Server 2008中,可以通过重新组织索引或重新生成索引来修复索引碎片,维护大块I/O的效率。 SQL Server提供了多种维护索引的方法。 重建索引 1.检查整理索引碎片 使用DBCC SHOWCONTIG检查有无索引碎片,或使用DBCC INDEXDEFRAG整理索引碎片。 DBCC SHOWCONTIG语句用来显示指定表的数据和索引的碎片信息。当对表进行大量的修改或添加数据之后,应该执行此语句来查看有无碎片。 检查碎片 其语法格式如下: DBCC SHOWCONTIG ( [ { table_name | table_id | view_name | view_id }, index_name | index_id ] ) 例:检查student表的索引idx_stu_name的碎片信息。 DBCC SHOWCONTIG ( student, idx_stu_name ) 整理碎片 DBCC INDEXDEFRAG ( [{ database_name | database_id}, { table_name | table_id | view_name | view_id }, index_name | index_id ] ) 【例9-7】整理student数据库中stu_info表的索引idx_name上的碎片。 DBCC INDEXDEFRAG ( student, stu_info, idx_name ) 2.重新组织索引 重新组织索引是通过对叶级页进行物理重新排序,使其与叶节点的逻辑顺序(从左到右)相匹配,从而对表或视图的聚集索引和非聚集索引的叶级别进行碎片整理,使页有序可以提高索引扫描的性能。 使用ALTER INDEX REORGANIZE按逻辑顺序重新排序索引的叶级页。由于这是联机操作,因此在语句运行时仍可使用索引。此方法的缺点是在重新组织数据方面不如索引重新生成操作的效果好,而且不更新统计信息。 3.重新生成索引 重新生成索引将删除原索引并创建一个新索引。此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。可以使用两种方法重新生成聚集索引和非聚集索引: 带 REBUILD 子句的 ALTER INDEX。 带 DROP_EXISTING 子句的 CREATE INDEX。 这种方法的缺点是索引在删除和重新创建周期内为脱机状态,并且操作属原子级。如果中断索引创建,则不会重新创建该索引。 当在一个包含数据的表上创建索引的时候,SQL Server会创建分布数据页来存放有关索引的两种统计信息:分布表和密度表。优化器利用这个页来判断该索引对某个特定查询是否有用。当表的数据改变之后,统计信息有可能是过时的,从而影响优化器追求最有工作的目标。因此,需要对索引统计信息进行更新。 索引统计信息的更新 其语法格式如下: UPDATE STATISTICS table_or_indexed_view_name [ { { ind

文档评论(0)

wbjsn + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档