SQL Server 인덱스 리빌드
-- 특정 테이블 대상으로 인덱스 리빌드를 할 경우
alter index all on xxx테이블명xxx rebuild with (pad_index = on, fillfactor = 90)
-- 전체 테이블 대상으로 리빌드 할 경우 cursor 이용 수행
declare @ii int
declare @sql varchar(1000)
declare @tablename varchar(1000)
declare @ownername varchar(1000)
set @ii= 0;
declare db_cursor cursor for
select table_schema, table_name
from information_schema.tables
where table_type = 'base table'
order by table_schema, table_name
open db_cursor
fetch next from db_cursor into @ownername, @tablename
while @@fetch_status = 0
begin
set @ii = @ii+ 1;
print convert(varchar, @ii) + '. ' + @ownername + ' : ' + @tablename + '---------- start';
set @sql = 'alter index all on ' + @ownername + '.' + @tablename + ' rebuild with (pad_index = on, fillfactor = 90) ';
exec(@sql);
print ' ---------- end';
print ' ';
fetch next from db_cursor into @ownername, @tablename
end
close db_cursor
deallocate db_cursor
;