Ao inserir menos de 1.350.000 linhas na tabela, isso leva cerca de 2 minutos; no entanto, quando o número de linhas inseridas é maior, o tempo necessário para inserir dados cresce para cerca de 5 horas.
O problema não está relacionado à consulta ou índices, porque tudo está funcionando bem há muito tempo e nada mudou na estrutura da consulta, tabelas ou índices.
O problema apareceu pela primeira vez há cerca de duas semanas e aparece repetidamente em dias, quando o número de linhas inseridas é maior que + -1.350.000. Por exemplo, em um dia, o número de linhas inseridas é de 1.200.000 e o processo leva 2 minutos; no outro dia, o número de linhas é de 1.450.000 e leva de 5 a 6 horas para inserir dados.
Tentei reconstruir índices, mas não ajudou.
fonte
Respostas:
Meu palpite seria - se você não está realmente sendo bloqueado - que você está atingindo um limite acima do qual o arquivo de dados (e / ou arquivo de log) deve crescer e que sua configuração não está otimizada para suportar esse crescimento. Garanta que:
fonte
Isso pode ser um problema de memória?
Você pode ver esse tipo de comportamento se algum pedaço de dados que deve ser acessado repetidamente se tornar muito grande para a memória e você sofrer uma pancada no disco do inferno. Se você precisar fazer um loop em um pedaço de dados grande demais para a memória, acabará lendo tudo novamente no arquivo de troca para cada passagem, empurrá-lo para além desse limite pode fazer com que seu desempenho caia de um precipício.
fonte
Você está tentando / é possível dividi-los em lotes menores? Quando encontrei um problema semelhante, agrupá-los em 5.000 (com GO) reduziu muito o tempo necessário para concluir essa tarefa.
fonte