SQL Server批量重建索引脚本
SQL Server 的索引重建脚本,挺适合手头数据量大的场景,尤其你遇到查询越来越慢的时候,基本就该考虑碎片问题了。这个压缩包里率是一个批量重建索引的脚本,逻辑清晰,直接跑就能用,不用你手动一个个表地去,省不少事。
索引碎片的可以用DBCC SHOWCONTIG
或者sys.dm_db_index_physical_stats
,看到碎片百分比高了(比如 30%以上),就该动手了。重建索引其实就像给硬盘碎片整理一下,数据页更紧凑,查询自然快。
离线和在线重建两种方式各有优缺点。你要是跑在非业务高峰期,用离线就行,快;如果业务敏感,在线重建会稳点,但耗资源,别在数据库吃紧时搞。
批量重建脚本,一般是遍历所有用户表,给每个表的索引来一遍ALTER INDEX ... REBUILD
。SQL 重建索引.txt
文件应该就是这么干的,直接上存储过程一跑,全套搞定。
参数选项也别忽略,比如FILLFACTOR
可以设置数据页的填充程度,控制新碎片的生成;WITH (STATISTICS_NORECOMPUTE = OFF)
还能顺便更新下统计信息,查询计划更聪明。
建议你可以搞个定时任务,比如每周跑一遍索引维护。真要细致点,还可以加上REORGANIZE
逻辑,碎片低就不重建,效率更高。
相关参考也挺全的,像DBCC DBREINDEX、碎片整理这些资料都能补充下原理和方法。如果你还没搞过索引重建,这一套用下来就差不多上手了。
下载地址
用户评论