/ / Spool de tabela no plano de execução do SQL Server - sql-server

Spool de tabela no plano de execução do SQL Server - sql-server

É realmente ruim para obter "spool de mesa" no plano de execução do SQL Server? Se não como é vantajoso? Nós realmente procuramos nos livrar do Spool de Mesa?

Respostas:

1 para resposta № 1

De acordo com MSDN:

O operador lógico de spool preguiçoso armazena cada linhaa partir de sua entrada em um objeto temporário oculto armazenado no banco de dados tempdb. Se o operador é rebobinado (por exemplo, por um operador Nested Loops), mas não é necessário, os dados em spool são usados ​​em vez de redigitalizar a entrada. Se a religação for necessária, os dados em spool serão descartados e o spool objeto é reconstruído pela nova verificação da entrada (rebote).

É sempre melhor não ter nenhum operador do que ter um. As vantagens são descritas acima (sem redigitalização). A desvantagem é que as linhas devem ser armazenadas em tempdb (geralmente, cabe na memória para acesso mais rápido).

Normalmente, não é ruim ter esse operador, a menos que tudo se encaixe na memória. Você deve compartilhar o plano de execução / consulta para obter mais explicações detalhadas e possíveis ajustes.