KB3196100 – ÅTGÄRDAT: Undantag inträffar under parallell bearbetning av partitioner om en kolumn kodas om i SQL Server 2016

Gäller för
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)

Symptom

I en Microsoft SQL Server 2016-miljö bearbetar du flera partitioner av en tabell parallellt. När du spårar förloppet ser du en omkodningshändelse för minst en av kolumnerna.

I det här fallet kan bearbetningsåtgärden misslyckas med ett undantagsfel. Ibland kan bearbetningen slutföras framgångsrikt, men sedan misslyckas efterföljande frågor med ett undantagsfel som liknar följande:

Obs

Ett oväntat undantag uppstod.
Ett oväntat undantag uppstod. (Microsoft SQL Server 2016 Analysis Services)
Programplats:
   på Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Microsoft.AnalysisServices.AdomdClient.IExecuteProvider.ExecuteTabular(CommandBehavior beteende, ICommandContentProvider contentProvider, AdomdPropertyCollection commandProperties, IDataParameterCollection parameters)
   på Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteReader(CommandBehavior beteende)
   på Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteReader()
   på Microsoft.ReportingServices.QueryDesigners.ASDesigner.QueryBuilderClientControl.QueryExec.ThreadExecution()

Obs! Ibland uppstår det här problemet när bearbetningen är klar och frågor körs mot bearbetade data.

Lösning

Information om kumulativ uppdatering

Korrigeringen för det här problemet ingår i följande kumulativa uppdatering för SQL Server:

Om kumulativa uppdateringar för SQL Server

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Senaste kumulativa uppdateringen för SQL Server 2016
      

      

Lösning

Du kan komma runt det här problemet genom att göra något av följande:

  • Bestäm vilka kolumner som kräver omkodning och använd en falsk partition i början för att generera värden som tvingar fram hash-kodning i identifieringsfasen. Den falska partitionen måste vara den som används för att välja kodningen innan parallelliteten börjar. När alla partitioner har bearbetats kan du rensa eller ta bort den falska partitionen.
  • Använd seriell bearbetning i stället för parallell bearbetning.

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Mer information

Parallell bearbetning av tabellpartitioner har följande logik:

  • Använd data i en partition för att fastställa kodningen (värde eller hash) för kolumnerna.
  • När kodningen har valts kan de andra partitionerna börja bearbeta parallellt.
  • Om värdekodning väljs och när raderna hämtas kan det hända att ett värde påträffas som inte passar in i värdekodningsschemat. I det här fallet måste hela kolumnen kodas om i hashkodningsschemat.
  • Den här omkodningsåtgärden (konvertering av värdekodning till hashkodning) stöter på ett problem när andra partitioner bearbetas samtidigt.

Referenser

Läs om den terminologi som Microsoft använder för att beskriva programuppdateringar.