Sintomi
Si consideri lo scenario seguente:
- Si usa una configurazione di stima di cardinalità (CE) che corrisponde al livello di compatibilità del database 120 o a un livello successivo per il sistema Microsoft SQL Server 2016 e 2017.
- Si esegue una query che contiene un predicato di ricerca.
- La query cerca i valori minori o uguali a qualsiasi numero inferiore al valore minimo di RANGE_HI_KEY archiviato nell'oggetto statistiche. In alternativa, la query cerca i valori maggiori del valore massimo di RANGE_HI_KEY per le stesse statistiche.
In questo scenario, Query Optimizer sovrastima il numero di righe. Ciò potrebbe causare una scelta del piano di query non ottimale e prestazioni scarse.
Risoluzione
La correzione di questo problema è inclusa nei seguenti aggiornamenti cumulativi per SQL Server:
Aggiornamento cumulativo 6 per SQL Server 2017
Aggiornamento cumulativo 8 per SQL Server 2016 SP1
Aggiornamento cumulativo 2 per SQL Server 2016
Nota: dopo aver installato questo aggiornamento, è necessario abilitare il flag di traccia 4199 per abilitare questa correzione. Per abilitare il flag di traccia 4199, vedere l'argomento Flag di traccia (Transact-SQL) nel sito Web Microsoft Developer Network (MSDN).
Informazioni sugli aggiornamenti cumulativi per SQL Server
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:
Aggiornamento cumulativo più recente per SQL Server 2017
Aggiornamento cumulativo più recente per SQL Server 2016
Stato
Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.