加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer批量重建索引(整理)

发布时间:2020-12-12 14:10:56 所属栏目:MsSql教程 来源:网络整理
导读:当SQLServer的数据积累到一定的数量,查询效率往往急剧下降,常常让人无法忍受,这时我们会想到各种方法对系统进行优化。DBCC是一组功能强大的控制台命令,其中DBCC DBREINDEX经常用到,它可以帮助我们重建指定表的索引,以提高查询的速度。 该命令的用法比

当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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读