Script para manutenção do SQL Server

Olá pessoal…

Trago hoje um script de manutenção para o SQL Server, com intuito de otimizar o Banco de Dados.

SQL Server

SQL Server

Primeiramente gostaria de agradecer ao Ednilson Amarante, vulgo A Lenda, por disponibilizar esse script para ajudar.

Agora como ele funciona, basicamente, pense da seguinte forma, você para ir até a padaria, passa por 12 quadras e sempre você pega o mesmo caminho, porém com o passar do tempo, a avenida entre você e a padaria, começou a ficar extremamente congestionada, além de várias ruas mudarem para se tornar de mão única.

Assim também é um banco de dados, quando ele faz a consulta em uma tabela, supondo que a tabela tenha 10 registros, ele vai criar um “mapa” para buscar esses dados, mas conforme a tabela vai aumentando, esse mapa precisa ser revisto, e muitas das vezes não atualizamos o mapa, limpamos o caminho para o banco.

Essa consulta serve para otimizar e limpar esses gargalos das consultas. Abaixo o código.

Obs.: Substitua Base_de_Dados pelo nome da sua base.

Update 30/07/2021:

Pessoal, recentemente um cliente que atende TCloud solicitou para que o script fosse adaptado, pois como não tem acesso ao banco de dados, precisamos criar uma função em AdvPL. Segue abaixo:

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

8 Responses

  1. Guilherme Lima disse:

    Atilhão como sempre mandando muito bem!!!
    Parabéns meu amigo!!!

  2. Thiago Santos disse:

    Excelente artigo! Só uma dúvida, de quanto em quanto tempo é bom rodar esse script no banco?

    • Dan_Atilio disse:

      Obrigado pelo feedback Thiago.
      Então, depende do tamanho da base do cliente que você for aplicar, já vi cenários em que agendamos uma vez por mês.
      Assim como também já vi casos de uma vez por semana.

  3. rahman13@gmail.com disse:

    Muito bom o script, ajudou muito já que uso um sistema antigo sem muito suporte do desenvolvedor.
    tive que criar uma tabelas manualmente pois o script não encontrou as tabelas e não existia mesmo no banco


    Desfragmentando índices da tabela Gerencial.dbo.Aliquotas…
    Mensagem 2501, Nível 16, Estado 45, Linha 1
    Não é possível encontrar uma tabela ou objeto com o nome “Aliquotas”. Verifique o catálogo do sistema.
    ===============================================================================================================================================================================================

    ===============================================================================================================================================================================================
    Atualizando estatísticas da tabela Gerencial.dbo.Aliquotas…
    Mensagem 2706, Nível 16, Estado 6, Linha 1
    A tabela ‘Aliquotas’ não existe.

    fui criando na mão, tem algum comando pra pular caso não ache a tabela e dar o aviso no final das tablelas não encontadas, ou só pular mesmo já que o sistema esta ok e não esta utilizando as tabelas não encontradas.

    Obrigado

  4. Jorez disse:

    Bom dia,
    Eu sempre “passo” por aqui quando estou pesquisando alguma informação relacionada à Protheus/Advpl e sempre encontro informações relevantes que ajudam.

    Gostaria de agradecer a parabanizar pelo trabalho.

    Muito obrigado!

Deixe uma resposta

Terminal de Informação