KB3196100 - CORREÇÃO: ocorrerá uma exceção durante o processamento paralelo de partições se uma coluna for codificada novamente no SQL Server 2016

Aplica-se a
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomas

Em um ambiente do Microsoft SQL Server 2016, você processa várias partições de uma tabela em paralelo. Ao rastrear o progresso, você observa um evento de recodificação para pelo menos uma das colunas.

Nessa situação, a operação de processamento pode falhar com um erro de exceção. Às vezes, o processamento pode ser concluído com êxito, mas as consultas subsequentes falham com um erro de exceção semelhante ao seguinte:

Observação

Ocorreu uma exceção inesperada.
Ocorreu uma exceção inesperada. (Microsoft SQL Server 2016 Analysis Services)
Local do programa:
   em Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Microsoft.AnalysisServices.AdomdClient.IExecuteProvider.ExecuteTabular(CommandBehavior, behavior, ICommandContentProvider, contentProvider, AdomdPropertyCollection, commandProperties, parâmetros IDataParameterCollection)
   em Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteReader (comportamento CommandBehavior)
   em Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteReader()
   em Microsoft.ReportingServices.QueryDesigners.ASDesigner.QueryBuilderClientControl.QueryExec.ThreadExecution()

Observação Às vezes, esse problema ocorre depois que o processamento é concluído e as consultas estão sendo executadas nos dados processados.

Resolução

Informações sobre a atualização cumulativa

A correção para esse problema está incluída na seguinte atualização cumulativa para o SQL Server:

Sobre atualizações cumulativas para o SQL Server

Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes para o SQL Server:

Atualização cumulativa mais recente do SQL Server 2016
      

      

Solução alternativa

Para contornar esse problema, siga um destes procedimentos:

  • Determine quais colunas precisam ser recodificadas e use uma partição falsa no início para gerar valores que forçarão a codificação de hash na fase de detecção. A partição falsa deve ser aquela usada para selecionar a codificação antes do início do paralelismo. Depois que todas as partições tiverem sido processadas, você poderá limpar ou excluir a partição falsa.
  • Use o processamento serial em vez do processamento paralelo.

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais informações

O processamento paralelo de partições tabulares tem a seguinte lógica:

  • Use os dados em uma partição para determinar a codificação (valor ou hash) das colunas.
  • Depois que a codificação é selecionada, as outras partições podem começar a ser processadas em paralelo.
  • Se a codificação de valor estiver selecionada e à medida que as linhas forem buscadas, poderá ser encontrado um valor que não se encaixe no esquema de codificação de valor. Nesse caso, a coluna inteira deve ser codificada novamente no esquema de codificação de hash.
  • Essa operação de recodificação (conversão de codificação de valor em codificação de hash) encontra um problema quando outras partições estão sendo processadas ao mesmo tempo.

Referências

Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.