Quantcast
Channel: indices
Viewing all articles
Browse latest Browse all 6

indices

$
0
0

Realmente, foi um pouco falta de atenção, realmente o Express não tem plano de manutenção, teria de ser via t-sql mesmo e  agendar via Scheduler do Windows, vê se isso te ajuda irmão, esse script ele recria os índices e recompila suas procedures.

if exists(select 1 from sysobjects s where s.type = 'P' and s.name = 'up_otimiza_bd')
drop procedure up_otimiza_bd
go


create procedure up_otimiza_bd
as



Print '--------------------------------------------------------------'
Print 'Esta procedure deve ser executada REGULARMENTE.'
Print 'Isto deixara a performance do banco de dados otimizada!'
Print '--------------------------------------------------------------'


declare @banco varchar(255)
declare @tabela varchar(255)
declare @versao int
select @banco = rtrim(db_name())
Select @versao = (select version from master..sysdatabases S Where s.name = db_name())



Print ''
Print '-----------------------------------------------------------'
Print 'Desfragmentando/Reindexando as Tabelas do Banco de Dados!'
Print '-----------------------------------------------------------'


set @tabela = ''

If @versao = 539 
  Begin
	while 1=1
	begin
	   select @tabela = Min(name)
	     from sysobjects
	    where type = 'U' 
	      and name > @tabela
	   if @tabela is null break
	   Print ''
	   print 'Reindexando ' + @tabela
	   DBCC dbreindex(@tabela, '', 80 )
	   Print @tabela + ' Reindexada com Sucesso!'
	end
  End

If @versao = 515 
  Begin
	while 1=1
	begin
	   select @tabela = Min(name)
	     from sysobjects
	    where type = 'U' 
	      and name > @tabela
	   if @tabela is null break
	   Print ''
	   print 'Reindexando ' + @tabela
	   DBCC dbreindex(@tabela, '', 70 )
	   Print @tabela + ' Reindexada com Sucesso!'
	end
  End


Print ''
Print '---------------------------------------'
Print 'Atualizando Estatistica dos Indices!'
Print '---------------------------------------'

exec sp_updatestats 

Print ''
Print '-----------------------------------------------'
Print 'Recompilando as Procedures do Banco de Dados!'
Print '-----------------------------------------------'


declare @Proc varchar(255)
declare @Exec varchar(255)
set @Proc = ''
while 1=1
  begin
    select @Proc=min(name)
      from   sysobjects 
     where  type = 'P' 
       and name > @Proc   
    if @Proc is null break
    Print ''
    Print 'Recompilando a procedure ' + @Proc
    set @exec = 'exec sp_recompile ' + rtrim(ltrim(@Proc))
    execute (@exec)
    Print @Proc + ' Recompilada com Sucesso!'
  end

Print ''
Print '----------------------------------'
Print 'Otimizacao do Banco de Dados Concluida!'
Print '----------------------------------'

----exec up_otimiza_bd

Para setar a váriavel @versão você precisa verificar a versão do seu banco na sysdatabase (select version from master..sysdatabases) após criar a procedure efetue o exec up_otimiza_bd


[]'s



Viewing all articles
Browse latest Browse all 6

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>