Gäller förSQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2019 on Windows

Symptom

Anta att du har en tabell som använder en begränsning för en utländsk nyckel som ska tas bort i relaterade, och att statistiken för kolumnen för externa nycklar inte omfattar hela området med nyckelvärden i tabellen (till exempel eftersom statistik inte uppdaterades efter att datafördelningen har ändras i tabellen). I det här scenariot, när du försöker ta bort en rad som motsvarar ett nyckelvärde som inte finns med i statistik histogrammet, och frågeoptimeraren använder standard kardinalitetsberäkningen, blir borttagningsåtgärden långsammare än väntat. Du kanske också märker att en indexsökning används för att hitta matchande rader i referenstabellen.

Status

Microsoft har bekräftat att det är ett problem i de Microsoft-produkter som listas i avsnittet "Gäller för".

Lösning

Det här problemet är åtgärdat i följande kumulativa uppdateringar för SQL Server:

Obs! Den här korrigeringen aktiveras bara när du aktiverar optimeringskorrigeringar (via det databasomfattningsalternativ, frågetips eller spårning av flagga 4199).

Om kumulativa uppdateringar för SQL Server:

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som inkluderades i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Lösning

Använd någon av följande metoder för att lösa problemet:

  • Använd äldre kardinalitetsberäkningar. Mer information finns i Kardinalitetsberäkning (SQL Server).

  • Ta bort borttagningen av relaterade från definitionen av foreign key och utför borttagningen genom att använda JOIN mellan överordnade och underordnade tabeller för att utföra motsvarande borttagning av relaterade.

  • Uppdatera statistik i den överordnade tabellen med FULL FLERA innan du tar bort data.

Referenser

Läs mer om terminologin som Microsoft använder för att beskriva programuppdateringar.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.