top of page

SQL Server: Plano de manutenção em um instância Express

Siltech Consult

É de conhecimento geral, que instâncias Express do SQL Server não possuem suporte para a criação de jobs programadas, então como fazer para criar um plano de manutenção semanal afim de otimizar o uso dos recursos, principalmente de disco?


Não existe mistérios, só é necessário utilizar a ferramenta Task Scheduler do próprio sistema operacional (Windows) para auxiliar na execução programada, mas para utilizá-la é necessário 2 etapas antes que é a criação do script SQL que executará as tarefas, e um arquivo .bat com os comandos de execução no sistema.


No arquivo .sql escreva:

EXEC sp_MSforeachdb
 @command1 = 'DBCC CHECKDB(?) WITH NO_INFOMSGS',
 @command2 = 'USE ?;
    IF NOT EXISTS(SELECT 1 WHERE ''?'' IN (''master'',''model'',''msdb'',''tempdb''))
    BEGIN
      EXEC sp_MSforeachtable
        @command1 = "DBCC DBREINDEX (''&'', '' '' , 80) WITH NO_INFOMSGS",
        @replacechar = ''&'';
      EXEC sp_updatestats;
      DBCC shrinkdatabase (?);
    END';

No .bat escreva:

date /t
time /t
sqlcmd -U <usuario_do_banco> -P <senha> -S <instância> -i <caminho_e_arquivo.sql> -o <caminho_e_arquivo.log>

Exemplo do arquivo .bat:

date /t
time /t.
sqlcmd -U teste -P 123456 -S SQLTESTE -i E:\ROTINA\Manutencao_Semanal.sql -o E:\ROTINA\Log_Manutencao_Semanal.log

Criados estes 2 arquivos (.sql e .bat) basta criar uma tarefa no Task Scheduler, estabelecer uma recorrência a seu gosto e colocar como ação a ser executada o arquivo .bat. Lembrando que o ideal é configurar a tarefa para rodar com altos privilégios.


Dúvidas? silverio@siltechconsult.com.br

476 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page