Sintomi
Considerare lo scenario descritto di seguito:
-
Si usa un database con il livello di compatibilità impostato su 130 in Microsoft SQL Server 2016.
-
È possibile eseguire una query che accede a un indice dell'archivio colonne e a un indice dell'archivio di riga o a un heap e include un predicato di filtro (clausola WHERE).
In questo scenario, SQL Server non sarà in grado di eseguire il push del predicato di filtro più vicino all'operatore dell'origine dati (ricerca o analisi tabella o indice). Questo può causare prestazioni di query non ottimali.
Inoltre, se la query usa un'espressione, ad esempio la conversione dei tipi, in cui la correttezza dipende dai dati filtrati, ad esempio una colonna della tabella char viene convertita in int, ma solo un sottoinsieme di valori contiene una rappresentazione int valida e questo sottoinsieme è identificato dal predicato di filtro, la query potrebbe non riuscire con un errore di conversione dei dati simile a uno dei seguenti:
Msg 245, Level 16, State 1, Line 20
Conversion failed when converting the varchar value '0.5' to data type int. Msg 8114, Livello 16, Stato 5, Riga 34 Errore durante la conversione del tipo di dati varchar in bigint.Risoluzione
Questo problema è stato risolto nel seguente aggiornamento cumulativo per SQL Server:Aggiornamento cumulativo 2 per SQL Server 2016 SP1
NotaPer rendere effettiva questa correzione, è necessario abilitare gli aggiornamenti rapidi di Query Optimizer.
È possibile abilitare gli aggiornamenti rapidi di Query Optimizer usando una delle opzioni seguenti: trace flag 4199, Database Scoped Configuration setting QUERY_OPTIMIZER_HOTFIXES=ON (disponibile in SQL Server 2016 e versioni successive) o USE_HINT'opzione di query 'ENABLE_QUERY_OPTIMIZER_HOTFIXES' (disponibile in SQL Server 2016 SP1 e versioni successive).
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli aggiornamenti rapidi e tutte le correzioni per la sicurezza inclusi nell'aggiornamento cumulativo precedente. Scopri gli ultimi aggiornamenti cumulativi per SQL Server:Ultimo aggiornamento cumulativo per SQL Server 2016
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologiautilizzata da Microsoft per descrivere gli aggiornamenti software.