Tuesday, March 29, 2011

Index REBUILDING

DECLARE @Table VARCHAR(255)
DECLARE @indexes VARCHAR(255)
DECLARE @cmd VARCHAR(1000)

DECLARE DatabaseCursor CURSOR FOR

select a.name,c.name from  sys.objects a left outer join (select distinct object_id,index_id from sys.index_columns) b
on a.object_id=b.object_id
left outer join (select  distinct index_id,name,object_id from sys.indexes) c on b.index_id=c.index_id and a.object_id=c.object_id
where type='u' and a.name not in('tam_rawdata','tam_viewership','tg_master','TAM_RAWDATA_TEMP','tam_viewership_file_temp','tam_viewership_temp_2',
'sysdiagrams','tam_viewership_temp','users_subscription','LOGIN_INFO','channel_target','Audit_Log_Master','tam_error_log','TMP_VIEWERSHIP')


OPEN DatabaseCursor

FETCH NEXT FROM DatabaseCursor INTO @Table, @indexes
WHILE @@FETCH_STATUS = 0
BEGIN




SET @cmd = 'ALTER INDEX ['+@indexes+'] ON [dbo].['+@Table+'] REBUILD WITH ( PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, ALLOW_ROW_LOCKS  = ON,
ALLOW_PAGE_LOCKS  = ON, SORT_IN_TEMPDB = OFF, ONLINE = OFF )'


exec(@cmd)


FETCH NEXT FROM DatabaseCursor INTO @Table, @indexes

end
CLOSE DatabaseCursor 
DEALLOCATE DatabaseCursor

No comments:

Post a Comment