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


發佈了750 篇原創文章 · 獲贊 38 · 訪問量 144萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章