SQLServer批量重建索引
当SQLServer的数据积累到一定的数量,查询效率往往急剧下降,常常让人无法忍受,这时我们会想到各种方法对系统进行优化。DBCC是一组功能强大的控制台命令,其中DBCC DBREINDEX经常用到,它可以帮助我们重建指定表的索引,以提高查询的速度。
该命令的用法比较简单,比如:
dbcc dbreindex ([customer],'',90)
第一个参数是要重建索引的表名,第二个参数指定索引名称,空着就表示所有,第三个参数叫填充因子,是指索引页的数据填充程度,0表示使用先前的值,100表示每个索引页都填满,这时查询效率最高,但插入索引时会移动其它索引,可根据实际情况来设置。
这个命令只能操作单个表,如果想对某数据库中的所有表都重建索引,则需要写个程序:
USE MyDB; DECLARE @name varchar(100) DECLARE authors_cursor CURSOR FOR Select [name] from sysobjects where xtype='u' order by id OPEN authors_cursor FETCH NEXT FROM authors_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN DBCC DBREINDEX (@name, '', 90) FETCH NEXT FROM authors_cursor INTO @name END deallocate authors_cursor