Sintomi
Si supponga di avere installato Microsoft SQL Server 2017 o 2019 e che venga eseguito con stima della cardinalità predefinita (CE). Si esegue una query che contiene un predicato di filtro nella colonna Col1. Query i predicati hanno un valore intrinseco superiore, inferiore o RTRIM. Col1 ha statistiche da usato da Optimizer. In questo scenario, è possibile osservare una cardinalità inesatta stime e che SQL Server usa un piano inefficiente. Di seguito sono elencate alcune query con predicati:
Selezionare person_id dalla persona in cui (posta elettronica LIKE UPPER (N'@live. com%'))
Selezionare person_id dalla persona in cui (posta elettronica = UPPER(N'msft@live.com '))
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Risoluzione
Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:
Informazioni sugli aggiornamenti cumulativi 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:
Nota Questa correzione richiede una delle seguente per avere effetto:
-
Configurazione con ambito database QUERY_OPTIMIZER_HOTFIXES impostata su attivato
-
Usare l'HINT per l' uso ENABLE_QUERY_OPTIMIZER_HOTFIXES
-
Abilitare il contrassegno di traccia 4199
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.