Sintomi
In un ambiente di Microsoft SQL Server 2016 si elaborano più partizioni di una tabella in parallelo. Quando si traccia lo stato di avanzamento, si nota un evento di ricodifica per almeno una delle colonne. In questo caso, l'operazione di elaborazione potrebbe non riuscire con un errore di eccezione. A volte, l'elaborazione può essere completata correttamente, ma le query successive non riescono con un errore di eccezione simile al seguente:
Si è verificata un'eccezione imprevista. Si è verificata un'eccezione imprevista. (Microsoft SQL Server 2016 Analysis Services) Posizione del programma: in Microsoft. AnalysisServices. AdomdClient. AdomdConnection. XmlaClientProvider. Microsoft. AnalysisServices. AdomdClient. IExecuteProvider. ExecuteTabular (CommandBehavior behavior, ICommandContentProvider contentProvider, AdomdPropertyCollection commandProperties, IDataParameterCollection Parameters) in Microsoft. AnalysisServices. AdomdClient. AdomdCommand. ExecuteReader (CommandBehavior behavior) at Microsoft. AnalysisServices. AdomdClient. AdomdCommand. ExecuteReader () at Microsoft. ReportingServices. QueryDesigners. ASDesigner. QueryBuilderClientControl. QueryExec. ThreadExecution ()
Nota Talvolta questo problema si verifica dopo il completamento dell'elaborazione e le query vengono eseguite sui dati elaborati.
Risoluzione
Informazioni sull'aggiornamento cumulativo
La correzione di questo problema è inclusa nell'aggiornamento cumulativo seguente per SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Soluzione alternativa
Per risolvere il problema, eseguire una delle operazioni seguenti:
-
Determinare quali colonne richiedono la ricodifica e usare una partizione fittizia all'inizio per generare valori che forzano la codifica hash nella fase di rilevamento. La partizione falsa deve essere quella usata per selezionare la codifica prima che inizi il parallelismo. Dopo l'elaborazione di tutte le partizioni, è possibile cancellare o eliminare la partizione fittizia.
-
Usare l'elaborazione seriale anziché l'elaborazione parallela.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Ulteriori informazioni
L'elaborazione parallela di partizioni tabulari ha la logica seguente:
-
Usare i dati di una partizione per determinare la codifica (valore o hash) delle colonne.
-
Dopo aver selezionato la codifica, è possibile che le altre partizioni inizino a essere elaborate in parallelo.
-
Se la codifica del valore è selezionata e mentre le righe vengono recuperate, è possibile che venga rilevato un valore che non rientra nello schema di codifica dei valori. In questo caso, l'intera colonna deve essere ri-codificata nello schema di codifica hash.
-
Questa operazione di ricodifica (convertendo la codifica dei valori in codifica hash) incontra un problema quando vengono elaborate altre partizioni contemporaneamente.
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.