fbpx

Manutenção de índices por prioridade

By josue | SQL

Em artigo anterior, mostrei como fazer manutenção de índices, hoje vamos avançar mais no assunto, aprendendo como fazer manutenção de índices por prioridade, ou seja, as tabelas serão reconstruídas de acordo com a ordem de importância que você definir.

 

Esse vídeo foi motivado por uma ótima notícia que recebi de uma de minhas alunas, a Regiane. Apesar de ter entrado no curso Transact-SQL do Zero ao Master a pouco tempo, ela já conseguiu uma vaga como DBA, antes mesmo de terminar o treinamento!

 

E mais, ela hoje é responsável por um banco com mais de 7 mil tabelas!!

 

Naturalmente com um banco desse tamanho, certas tarefas de manutenção, como a reconstrução e reorganização de índices, precisam ser feita em múltiplas etapas, e é exatamente isso que faremos hoje.

 

Porque priorizar tabelas na hora do REBUILD

Se você administra bancos de dados pequenos, talvez não faça sentido dividir o trabalho de rebuild dos índices em múltiplas etapas, porém, tem sido cada vez mais comum a existência de bancos com muitos dados e/ou muitos objetos.

 

Faça parte da lista VIP de amigos!

Fique por dentro das novidades, abertura de turmas, tenha acesso a conteúdos exclusivos e promoções! 

Uma de minhas alunas, por exemplo, relatou estar trabalhando com um banco que possui mais de 7 mil tabelas, e nesse caso torna-se bastante relevante definirmos quais objetos devem ter prioridade no processo de reconstrução e reorganização de índices.

 

Como priorizar o REBUILD / REORGANIZE das tabelas

Para você definir uma ordem de prioridade para REBUILD e/ou REORGANIZE das suas tabelas não há muita escapatória além de criar uma tabela onde você possa organizar os objetos a serem priorizados.

 

Por isso, nossa solução começa criando uma tabela chamada REBUILDS_PRIORITARIOS, onde você cadastrará a ordem de execução dos REBUILDS. Em nosso exemplo, definimos as tabelas: clientes, vendas e produtos.

--------------------------------------------------
-- Segregação de Rebuilds - Requisitos
--------------------------------------------------
-- Tabela contendo nomes das tabelas prioritárias para rebuild
if object_id('rebuilds_prioritarios') is not null drop table rebuilds_prioritarios
create table rebuilds_prioritarios (prioridade int primary key clustered, nome_tabela varchar(300))
insert into rebuilds_prioritarios values (1, 'clientes'), (2, 'vendas'), (3, 'produtos')
select * from rebuilds_prioritarios 


 

Por surpreendente que pareça, a parte mais difícil e mais chata está terminada nesse exato ponto!

 

O que temos a fazer agora são apenas 2 passos:

1) Criar um JOB que reconstrua os índices das tabelas prioritárias.

2) Criar um JOB que reconstrua os índices das demais tabelas do banco (não prioritárias).

 

O melhor de tudo vem agora! Os dois scripts que criei, funcionam para qualquer banco que você estiver trabalhando!! Ou seja, basta criar a tabela REBUILDS_PRIORITARIOS, inserir as tabelas prioritárias, e depois rodar os scripts abaixo, ou pelo SQL ou através de JOBs do SQL Agent!

 

Só isso! Você cumpriu a tarefa de executar reorganização e reconstrução de índices por prioridade!

 

 

Abaixo o script completo da aula de hoje:

 

CONCLUSÃO

Como o crescimento dos bancos de dados muitas vezes é necessário dividir cargas de processamento, inclusive aquelas relativas a manutenção do seu banco de dados, como por exemplo, a reorganização e/ou reconstrução de índices.

 

Tenha o seu banco muitos dados ou muitas tabelas, certamente saber como fazer a manutenção dos índices por prioridade é uma excelente carta na manga para você, não só para resolver esse problema, mas também outros semelhantes, os quais exigem divisão do trabalho em múltiplas etapas.

 

Espero que também tenha gostado desse conteúdo.

 

Abraço do seu amigo Josué 🙂

Follow

About the Author

Oi, aqui é o Josué. Sou o criador do site dba-pro.com. Minha missão é ajudar pessoas a usarem o potencial do SQL Server em suas profissões, para que trabalhem felizes e bem remuneradas. Sou consultor e empreendedor, atuando em empresas desde 2000 e dando aulas desde 2004. Adoro SQL, Excel, automatização de processos, finanças e Coaching. Quando não estou trabalhando ou estudando, gosto de leitura, games para PC, filmes, séries e conversas estimulantes.