Sintomas
Considere o seguinte cenário:
-
No Microsoft SQL Server 2016, você executa uma consulta que usa um recurso de processador de consulta do SQL Server 2016. Por exemplo, você executa um operador de classificação no modo em lotes.
-
Você experimenta a degradação do desempenho da consulta quando comparado ao executar o mesmo operador de classificação no modo de linha.
-
Para solucionar esse problema, tente habilitar o sinalizador de rastreamento 9347 no nível da sessão ou usar o QUERYTRACEON. Isso é feito para desabilitar as classificações de modo de lote.
Nesse cenário, o operador de classificação ainda é executado no modo de lote e ignora o sinalizador de rastreamento em nível de sessão ou de consulta.
Resolução
No SQL Server 2016, você pode usar o sinalizador de rastreamento 9347 para forçar o uso de operadores de classificação no modo de linha, em vez de serem executados no modo de lotes. Depois de aplicar a atualização cumulativa 1 para SQL Server 2016, você pode habilitar com êxito o sinalizador de rastreamento 9347 no nível da sessão ou da consulta. Você também pode habilitar esse sinalizador de rastreamento globalmente no nível do servidor, nível da sessão ou nível de consulta. Observação Usar sinalizadores de rastreamento incorretamente pode degradar o desempenho da carga de trabalho. Para obter mais informações, consulte a seção "introdução" do seguinte artigo da base de dados de conhecimento Microsoft: 2801413 habilitar comportamento do otimizador de consulta do SQL Server que pode ser controlado por diferentes sinalizadores de rastreamento em um nível de consulta específica
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.