2008-5-7 11:13
yanyanou
SQL Server 2005联机重新生成索引
[size=3][color=#000000][font=宋体]我知道[/font][font=宋体]数据库索引是数据库的一项重要性能,会影响到数据表的查询和修改,但不知道索引碎片是什么,那位给我解释一下,另外在[/font][font=Times New Roman]SQL Server 2005[/font][font=宋体]中怎么出来数据碎片呢,高手能具体介绍一下吗?[/font][/color][/size]
2008-5-12 16:40
teresadown
索引是数据库引擎中针对表(有时候也针对视图)建立的特殊数据结构,用来帮助查找和整理数据。索引的重要性体现在能够使数据库引擎快速返回查询结果。当对索引所在的基础数据表进行修改时(包括插入、删除和更新等操作),会导致索引碎片的产生。当索引的逻辑排序和基础表或视图的物理排序不匹配时,就会产生索引碎片。随着索引碎片的不断增多,查询响应时间就会变慢,查询性能也会下降。在SQL Server 2005中,要解决这个问题,要么重新组织索引要么重新生成索引。
2008-5-12 16:40
yanyanou
哦,这样啊,能再详细介绍一下重新组织索引和重新生成索引吗?
2008-5-12 16:41
tomotajing
修复索引碎片有重新组织索引和重新生成索引有两种方法。重新组织索引会对最外层数据页里的数据进行重新排序,并压缩索引页。重新组织的过程中不会添加任何额外的数据,所以索引可能还残留着一定程度的碎片。重新组织索引操作不会占用很多系统资源,在运行过程中外部进程也可以对该索引所在的数据表进行查询,所以可以说是联机(online)执行。
2008-5-12 16:41
tomotajing
重新生成索引操作基本上删除掉目标索引并创建一个新索引。旧索引中的任何碎片都会被删除,新索引的逻辑排序将和对象的物理排序相匹配。由于整个过程需要删除索引并重新创建,所以外部进程无法访问数据表,而且访问性能也大受影响。事实上,在重新生成索引的过程中,其他进程并不能完全锁定数据表。这是重新生成索引的一大障碍。
2008-5-12 16:42
Casey
路过,说的挺好的,顶了
页:
[1]
Powered by Discuz! Archiver
© 2001-2006 Comsenz Inc.