Beruflich Dokumente
Kultur Dokumente
USE [msdb]
GO
END
--Index rebuild
IF @AvgFragmentationInPercent<=30.00
BEGIN
SELECT @tsql = STUFF((SELECT DISTINCT '';''+''ALTER INDEX
''+FI.IndexName+'' ON ''+FI.ObjectName+'' REORGANIZE ''
FROM @FragmentedIndexs FI WHERE FI.AvgFragmentationInPercent <= 30 AND
FI.ID = @init
AND NOT EXISTS (SELECT * FROM @FragmentedIndexs X WHERE X.index_id = 0 AND
FI.ObjectName = X.ObjectName)
FOR XML PATH('''')), 1,1,'''')
END
ELSE IF @AvgFragmentationInPercent>30.00
BEGIN
SELECT @tsql = STUFF((SELECT DISTINCT '';''+''ALTER INDEX
''+FI.IndexName+'' ON ''+FI.ObjectName+'' REBUILD WITH (FILLFACTOR =
''+CONVERT(VARCHAR(3),@fillfactor)+'') ''
FROM @FragmentedIndexs FI WHERE FI.AvgFragmentationInPercent > 30 AND
FI.ID = @init
AND NOT EXISTS (SELECT * FROM @FragmentedIndexs X WHERE X.index_id = 0 AND
FI.ObjectName = X.ObjectName)
FOR XML PATH('''')), 1,1,'''')
END
--print @tsql
EXEC sp_executesql @tsql
--Update stats
IF @AvgFragmentationInPercent <= 30.00
BEGIN
SELECT @tsql = STUFF(( SELECT DISTINCT '';''+''UPDATE STATISTICS '' +
FI.ObjectName + '' '' + FI.IndexName FROM @FragmentedIndexs FI
WHERE FI.AvgFragmentationInPercent <= 30 AND FI.ID = @init FOR XML
PATH('''')), 1,1,'''')
--print @tsql
EXEC sp_executesql @tsql
END
--Table rebuild
IF @heap = 1
BEGIN
SELECT @tsql = STUFF(( SELECT DISTINCT '';''+''ALTER TABLE '' +
FI.ObjectName + '' REBUILD'' FROM @FragmentedIndexs FI
WHERE FI.ID = @init AND index_id = 0 FOR XML PATH('''')), 1,1,'''')
--print @tsql
EXEC sp_executesql @tsql
END