Guest User

Untitled

a guest
May 21st, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.35 KB | None | 0 0
  1. --dbcc showcontig with tableresults
  2. --dbcc showcontig with tableresults, all_indexes
  3.  
  4. set nocount on
  5. create table #dbreindex (
  6.     dbname sysname not null,
  7.     tablename sysname not null primary key,
  8.     [started] datetime default(getdate()),
  9.     altered datetime default(null),
  10.     logsize int default(null),
  11.     logsize2 int default(null)
  12. )
  13.  
  14. exec sp_MSforeachtable @command1 = '
  15.     print ''?''
  16.     declare @logsize int
  17.     declare @dbname sysname
  18.     set @dbname = db_name()
  19.     insert into #dbreindex (dbname, tablename ) values (@dbname, ''?'')
  20.     select @logsize = sum(size) from sysfiles where groupid = 0
  21.     update #dbreindex set logsize = @logsize where tablename = ''?'' and dbname = @dbname
  22.     --dbcc dbreindex(''?'','''',80)
  23.     begin try
  24.         alter index all on ? rebuild with(pad_index = on, fillfactor = 80, sort_in_tempdb = on, maxdop = 8)
  25.     end try
  26.     begin catch
  27.         print ''? のインデックス操作に失敗しました。''
  28.     end catch
  29.     update #dbreindex set altered = getdate() where tablename = ''?'' and dbname = @dbname
  30.     select @logsize = sum(size) from sysfiles where groupid = 0
  31.     update #dbreindex set logsize2 = @logsize where tablename = ''?'' and dbname = @dbname
  32. '
  33.  
  34. select datediff(ms, started, altered) as time_msec, (logsize2 - logsize) as growth, * from #dbreindex
  35. select datediff(s, min(started), max(altered)) as total_sec from #dbreindex
  36.  
  37. drop table #dbreindex
Add Comment
Please, Sign In to add comment