Eu tenho um procedimento armazenado que trunca algumas tabelas com cerca de 1,75M linhas em cada uma, antes de inserir novos dados (com base nos dados de outras tabelas, cálculos etc.)
O esboço básico é muito simples:
- Truncar tabelas
- Insira 1,75M linhas em 'lotes' de cerca de 75.000 por vez.
Gostaria de saber se devo recriar explicitamente os índices a qualquer momento neste processo? por exemplo
- Truncar tabelas
ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90)
[ou algo parecido]- Inserir linhas de 1,75 M
ou talvez
ALTER INDEX ALL ON xxx DISABLE
- Truncar tabelas
- Inserir linhas de 1,75 M
ALTER INDEX ALL ON xxx REBUILD WITH (FILLFACTOR=90)
[ou algo parecido]
Qualquer assistência apreciada ... não um DBA - um desenvolvedor que conhece muito bem o DB é mais preciso!
insert into
e, no momento, não há order by
cláusula, mas eu poderia acrescentar que, se isso ajudasse? ID e Código também são indexados separadamente.