2010-12-21 65 views

回答

1

,以獲取有關指數的碎片信息在SQL Server 2005中你可以找到它here

+0

我想腳本列表使用數據庫轉移到所有的指數,我可以讓一個腳本來重建或立即重組它們。 – Haid 2010-12-21 14:27:32

0

我不知道您的情況,但是如果您在活動數據庫上運行這種腳本,則可能會在運行時遇到令人討厭的性能問題。如果某些指標嚴重分散,我們可以說超過40-50%,那麼它就成爲重建它的一個更好的選擇。
但你當然可以作出這樣的腳本是這樣的:

DECLARE cur_idx CURSOR 
SELECT OBJECT_NAME(OBJECT_ID) 
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, N'LIMITED') 
WHERE avg_fragmentation_in_percent > @your_limit_for_fragmentation 

OPEN CURSOR cur_idx 

FETCH NEXT FROM cur_idx INTO @idx_name 
WHILE @@FETCHSTATUS = 0 BEGIN 
    --create dynamic sql statement 
END 

--close光標和清理