1. 程式人生 > >DBCC大全集之(適用版本MS SQLServer 2008 R2)----DBCC DBREINDEX對指定資料庫中的表重新生成一個或多個索引

DBCC大全集之(適用版本MS SQLServer 2008 R2)----DBCC DBREINDEX對指定資料庫中的表重新生成一個或多個索引

DBCC DBREINDEX 重新生成表的一個索引或為表定義的所有索引。通過允許動態重新生成索引,可以重新生成強制 PRIMARY KEY 或 UNIQUE 約束的索引,而不必刪除並重新建立這些約束。這意味著無需瞭解表的結構或其約束,即可重新生成索引。這可能在將資料大容量複製到表中以後發生。

DBCC DBREINDEX 可以在一條語句中重新生成表的所有索引。這要比對多條 DROP INDEX 和 CREATE INDEX 語句進行編碼更容易。由於這項工作是通過一條語句執行的,因此 DBCC DBREINDEX 自動成為原子性的,而單個 DROP INDEX 和 CREATE INDEX 語句則必須包含在事務中才能成為原子性的。此外,DBCC DBREINDEX 提供了比單個 DROP INDEX 和 CREATE INDEX 語句更多的優化效能。

與 DBCC INDEXDEFRAG 或具有 REORGANIZE 選項的 ALTER INDEX 不同,DBCC DBREINDEX 是一個離線操作。如果重新生成了非聚集索引,則在該操作的持續時間內,相關表持有共享鎖。這可以禁止對錶進行修改。如果重新生成了聚集索引,則持有排他表鎖。這可以禁止任何表訪問,因此可以有效地使表離線。為了執行聯機索引重新生成,或控制索引重新生成操作期間的並行度,可使用具有 ONLINE 選項的 ALTER INDEX REBUILD 語句。

有關選擇方法來重新生成或重新組織索引的詳細資訊,請參閱重新組織和重新生成索引

限制

不支援對以下物件使用 DBCC DBREINDEX:

  • 系統表

  • 空間索引