Symptom
Tänk dig följande scenario:
- Du har en fråga som använder ett predikat som inte är likhetspredikat i en unik GUID-kolumn i SQL Server 2014 eller 2016.
- Statistiken uppdateras med standardsampling. Eller så infogas nya rader i tabellen efter den senaste statistikuppdateringen.
- SQL Server använder den nya kardinalitetsberäknaren där databaskompatibilitetsläget är inställt på 120.
- GUID-värdena är ojämnt fördelade i tabellen.
I det här scenariot kan du få dåliga prestanda när du kör frågan på grund av felaktigt uppskattade antal rader för predikatet i frågeplanen.
Lösning
Det här problemet åtgärdades först i följande kumulativa uppdatering för SQL Server:
Kumulativ uppdatering 6 för SQL Server 2014 Service Pack 1
Kumulativ uppdatering 1 för SQL Server 2016
När du har installerat det här kumulativa uppdateringspaketet måste du aktivera spårningsflagga 4199. För att göra detta kan du lägga till startparametern -T4199. Eller så kan du använda instruktionen dbcc traceon(4199) för en specifik session.
Om kumulativa uppdateringar för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Senaste kumulativa uppdateringen för SQL Server 2014
Senaste kumulativa uppdateringen för SQL Server 2016
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".
Referenser
Läs mer om den terminologi som Microsoft använder för att beskriva programuppdateringar.