Atualmente em execução no SQL Server 2008 R2
Estou tentando aumentar o desempenho de uma instrução UPDATE. Percebo uma operação Epool Spool no showplan aparecendo. Meu entendimento das operações de spool é bastante básico - elas criam armazenamento temporário para a tabela durante a atualização.
Eu também sei que, enquanto eles estão impedindo tempos de execução muito piores, os spools ansiosos geralmente são indicativos de problemas subjacentes à estrutura da tabela e / ou instruções de consulta.
Minha pergunta é bem simples: quando você vê um spool ansioso no seu plano de consulta, quais problemas você procura resolver primeiro?
Analisarei todas as partes do nosso sistema para aumentar o desempenho - só estou procurando orientação sobre onde devo começar.
fonte
UPDATE
é se a tabela tem uma auto-referência de chave estrangeira ou acessa UDFs que fazem acesso a dados ou não são esquema obrigadoRespostas:
O Eager Spools pode ser adicionado por vários motivos, inclusive para a Proteção de Halloween , ou para otimizar a E / S ao manter índices não clusterizados .
Sem ver (nem mesmo uma imagem) do plano de execução, é difícil ter certeza de quais desses cenários podem ser aplicados no seu caso particular. Se a sensibilidade dos dados for uma preocupação, considere fazer o upload de uma versão anônima do plano para análise usando o SentryOne Plan Explorer .
Pode ser que o Eager Spool não seja o que você deveria se concentrar; muitos fatores influenciam o desempenho real das consultas que alteram os dados. Se você estiver baseando seus esforços de ajuste no custo percentual estimado mostrado para o operador Eager Spool, considere que essas estimativas são geradas usando um modelo que não se destina a corresponder aos recursos de sua configuração de hardware específica.
fonte
Às vezes, o carretel ansioso pode ser evitado quando outros operadores de bloqueio estão no local - por exemplo. Portanto, é uma boa idéia garantir que os dados já estejam classificados no momento em que atingem esse estágio. (índices ausentes, talvez?)
Se existe para a proteção do Dia das Bruxas, então, como os outros caras disseram, há pouco que você pode fazer.
fonte