SQL Server通过整理索引碎片和重建索引提高速度
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:26
SQL Server数据库操作中,当数据库中的记录比较多的时候,我们可以通过索引来实现查询。但是当索引碎片太多的时候,就会很严重地影响到查询的速度。这时候我们可以采取两种方法来解决:一种时整理索引碎片,另一种是重建索引。
索引是数据库引擎中针对表(有时候也针对视图)建立的特别数据结构,用来帮助查找和整理数据。索引的重要性体现在能够使数据库引擎快速返回查询
结果。当对索引所在的基础数据表进行修改时(包括插入、删除和更新等操作),会导致索引碎片的产生。当索引的逻辑排序和基础表或视图的物理排序不匹配时,
就会产生索引碎片。随着索引碎片的不断增多,查询响应时间就会变慢,查询性能也会下降。在SQL Server
2005中,要解决这个问题,要么重新组织索引要么重新生成索引。
索引能够加快对表的访问速度,然而任何事物都有两面性,索引在带给我们便利的同时也会占用额外的磁盘空间,并且我们在对表进行增删改的操作时也要消耗额外的时间来更新索引。而在我们对包含索引的表进行增删改时,也会造成索引碎片,久而久之,索引碎片程度越来越高,反而会降低我们对表的访问速度。因此作为数据库管理员,要定期维护索引,修复索引碎片。
怎样确定索引是否有碎片? http://blog.tianya.cn/blogger/post_read.asp?BlogID=2587659&PostID=24488142
SQLServer提供了一个数据库命令――DBCC SHOWCONTIG――来确定一个指定的表或索引是否有碎片。
DBCC SHOWCONTIG
数据库平台命令,用来显示指定的表的数据和索引的碎片信息。
DBCC SHOWCONTIG 权限默认授予 sysadmin固定服务器角色或 db_owner 和 db_ddladmin固定数据库角色的成员以及表的所有者且不可转让。
语法(SQLServer2000)
DBCC SHOWCONTIG
[ ( { table_name | table_id| view_name | view_id }
[ , index_name | index_id ]
)
]
[ WITH { ALL_INDEXES
| FAST [ , ALL_INDEXES ]
| TABLERESULTS [ , { ALL_INDEXES } ]
[ , { FAST | ALL_LEVELS } ]
}
]
语法(SQLServer7.0)
DBCC SHOWCONTIG
[ ( table_id [,index_id ]
)
]
那么SQL Server如何的定期清理索引碎片呢?可以做个Job作业计划,定期的执行。
UPDATE STATISTICS更新统计信息来提高查询效率.
- 上一篇: Sql Server系列:分区表操作
- 下一篇: SQL Server添加MDW性能监控报表
相关文章
-
Sql Server系列:分区表操作
Sql Server系列:分区表操作
- 互联网
- 2026年04月04日
-
SQL server虚拟化架构
SQL server虚拟化架构
- 互联网
- 2026年04月04日
-
SQL Server重建索引与重组索引会更新统计信息吗?
SQL Server重建索引与重组索引会更新统计信息吗?
- 互联网
- 2026年04月04日
-
SQL Server添加MDW性能监控报表
SQL Server添加MDW性能监控报表
- 互联网
- 2026年04月04日
-
SQL Server添加MDW性能监控报表(转载)
SQL Server添加MDW性能监控报表(转载)
- 互联网
- 2026年04月04日
-
SQL Server数据库性能优化之索引篇【转】
SQL Server数据库性能优化之索引篇【转】
- 互联网
- 2026年04月04日






