FIX: Exception occurs during parallel processing of partitions if a column is re-encoded in SQL Server 2016

Velja za: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

Symptoms


In a Microsoft SQL Server 2016 environment, you process multiple partitions of a table in parallel. When you trace the progress, you notice a re-encoding event for at least one of the columns.

In this situation, the processing operation may fail with an exception error. Sometimes, processing may be completed successfully but then subsequent queries fail with an exception error that resembles the following:

An unexpected exception occurred.
An unexpected exception occurred. (Microsoft SQL Server 2016 Analysis Services)
Program Location:
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Microsoft.AnalysisServices.AdomdClient.IExecuteProvider.ExecuteTabular(CommandBehavior behavior, ICommandContentProvider contentProvider, AdomdPropertyCollection commandProperties, IDataParameterCollection parameters)
at Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteReader()
at Microsoft.ReportingServices.QueryDesigners.ASDesigner.QueryBuilderClientControl.QueryExec.ThreadExecution()
Note Sometimes this problem occurs after processing is completed and queries are being executed against the processed data.

Resolution


Cumulative update information

The fix for this issue is included in the following cumulative update for SQL Server:

Workaround


To work around this issue, do one of the following:
  • Determine which columns require re-encoding, and use a fake partition at the beginning to generate values that will force hash encoding in the detection phase. The fake partition must be the one that's used to select the encoding before parallelism begins. After all the partitions have been processed, you can clear or delete the fake partition.
  • Use serial processing instead of parallel processing.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information


Parallel processing of Tabular partitions has the following logic:
  • Use the data in the one partition to determine the encoding (either value or hash) of the columns.
  • After the encoding is selected, the other partitions can start to process in parallel.
  • If value encoding is selected and as the rows are being fetched, a value may be encountered that doesn't fit in the value encoding scheme. In this case, the whole column must be re-encoded into the hash encoding scheme.
  • This re-encoding operation (converting value encoding into hash encoding) encounters a problem when other partitions are being processed at the same time.

References


Learn about the terminology that Microsoft uses to describe software updates.