Sintomi
Considerare lo scenario seguente:
-
Si usa una configurazione di stima della 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 esegue la ricerca di valori inferiori o uguali a qualsiasi numero inferiore al valore minimo di RANGE_HI_KEY archiviato nell' oggetto statistiche. In alternativa, la query cerca valori superiori al valore massimo di RANGE_HI_KEY per le stesse statistiche.
In questo scenario, Query Optimizer sopravvaluta il numero di righe. Questo può causare una scelta di piano di query meno che ottimale e prestazioni scadenti.
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 contrassegno di traccia 4199 per abilitare la correzione. Per abilitare il contrassegno di traccia 4199, vedere l'argomento contrassegni di traccia (Transact-SQL) nel sito Web Microsoft Developer Network (MSDN).
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:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.