Sintomas
No Microsoft SQL Server 2016 ou SQL Server 2017 no Windows, poderá registar um desempenho reduzido nas seguintes condições:
-
Quando executa várias operações INSERTSELECT simultâneas em tabelas temporárias.
-
Quando consulta sys.dm_os_waiting_tasks. Nesta situação, a coluna resource_description mostra esperas nas páginas espaço livre de páginas (PFS) para vários pedidos.
Causa
O paralelismo INSERT para operações INSERTSELECT foi introduzido no SQL Server 2016 ou SQL Server 2017 no Windows. Os INSERTs em tabelas temporárias locais (apenas as identificadas pelo prefixo # e não as tabelas temporárias globais identificadas por prefixos ##) são agora ativadas automaticamente para paralelismo sem ter de designar a sugestão tabLOCK de que as tabelas não temporárias necessitam.
Embora o paralelismo INSERT normalmente melhore o desempenho das consultas, se existir um número significativo de operações de insertSELECT de tabela temporárias simultâneas, a contenção pode ser significativa em relação a páginas PFS. Em alguns casos, isto pode causar uma diminuição geral do desempenho.
Resolução
O problema foi corrigido pela primeira vez no SQL Server Service Pack 1 de 2016. Depois de aplicar SQL Server 2016 SP1, os INSERTs Paralelos no INSERT.. A opção SELECIONAR para tabelas temporárias locais está desativada por predefinição, o que reduz a contenção na página PFS e melhora o desempenho geral da carga de trabalho simultânea. Se pretender INSERTs paralelos para tabelas temporárias locais, os utilizadores devem utilizar a sugestão TABLOCK enquanto inserem na tabela temporária local.
Se tiver ativado o sinalizador rastreio 9495 mencionado na secção de solução, recomenda-se que desative e remova o sinalizador de rastreio depois de aplicar SQL Server 2016 SP1 como sinalizador de rastreio 9495 desativa a inserção paralela, independentemente da sugestão TABLOCK.
Informações de atualização cumulativa
Este problema foi corrigido na seguinte atualização cumulativa para SQL Server 2016:
Acerca das atualizações cumulativas do SQL Server