Estou executando um trabalho que exclui dados de 7 tabelas, 2 das quais contêm de 10 a 20 lakhs de registros. Mas o trabalho fica preso em um ponto ao excluir dados de uma tabela específica web_activity que contém apenas 42.000 registros. Na maioria das vezes, leva 4 horas. Mas às vezes leva apenas 7 minutos. Se esta for a questão do índice, então o que acontece no dia da execução de 7 minutos.
Existem 4 outros trabalhos que são executados paralelamente todos os dias e às vezes criam bloqueios, mas o bloqueio se deve à utilização de recursos por outros trabalhos.
O que me preocupa é: como posso reduzir as quatro horas para exclusão de apenas 42.000 registros da tabela web_activity?
Mais um ponto: há um grande número de leituras lógicas 2066225339. Não tenho certeza se essa é a causa ou não.
Ao fazer DBCC SHOWCONFIG para essas tabelas, ele mostra os dados abaixo:
Estou usando uma abordagem alternativa:
select Web_Activity_id into #Temp_web_activity from Web_Activity
where MONTH_NUMBER >=@min_month_to_delete
and year >= @year_to_delete;
DELETE FROM Web_Activity WHERE Web_Activity_id
in (select Web_Activity_id from #Temp_web_activity);
Será útil? Também tentei excluir em lotes na plataforma inferior, mas não ajudou muito.