Sammanfattning
Lägg till det nya attributet EstimateRowsWithoutRowGoal Query execution plan i SQL Server 2017 Cumulative Update 3 (CU3) och Microsoft SQL Server 2016 Service Pack 2 (SP2).
När funktionen för optimering uppskattar kostnaden för en fråga i en körnings plan antas det normalt att alla kvalificerade rader från alla källor måste behandlas. Vissa frågor gör att Query optimeringen söker efter en plan som returnerar ett mindre antal rader snabbare. Det här kan inträffa om frågan använder en Top -sats, snabbt number_rows frågetipset, en in -eller exists -sats eller ett set radantal {Number | @number_var} -uttryck. I det här fallet använder optimerandet ett rad mål när det uppskattar frågeuttrycket. Om en rad mål plan används minskas det uppskattade antalet rader i körnings planen. Det här beror på att ett mindre antal rader måste behandlas för att nå rad målet.
Obs! Uppskattningen som görs med hjälp av ett Radvärde är ungefärlig. Om den faktiska data distributionen inte är enhetlig kan den vara mindre än det faktiska antalet rader som måste behandlas. Därför kan det skapa en ineffektiv frågeplan. Som en lösning på det här problemet kan du använda frågealternativen ("DISABLE_OPTIMIZER_ROWGOAL") eller spårnings flagga 4138.
Mer information finns i Uppdatera introduktions tips argumentet tips i SQL Server 2016. Men det kan vara svårt att identifiera i komplexa frågor om ett rad mål tillämpas och hur mycket det påverkar abonnemanget.
Genom att använda EstimateRowsWithoutRowGoal -attributet kan du jämföra resultatet med EstimateRows -attribut för att se hur mycket av rad mål påverkar uppskattningarna för optimering av frågor.
Obs! Om rad mål inte används för en viss frågeplan är det här attributet inte inkluderat.
Mer information
Den här uppdateringen ingår i den kumulativa uppdateringen för SQL Server:
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:
Information om Service Pack för SQL Server
Den här uppdateringen introduceras i följande Service Pack för SQL Server:
Service Pack är kumulativa. Varje nytt Service Pack innehåller alla korrigeringar som finns i tidigare service pack, tillsammans med eventuella nya korrigeringar. Vår rekommendation är att tillämpa senaste Service Pack och den senaste kumulativa uppdateringen för detta Service Pack. Du behöver inte installera ett tidigare service Pack innan du installerar den senaste Service Pack-versionen. Använd tabell 1 i följande artikel för att hitta mer information om den senaste service versionen och den senaste kumulativa uppdateringen.
Avgöra version, utgåva och uppdaterings nivå för SQL Server och dess komponenter
Referenser
Lär dig mer om terminologinsom Microsoft använder för att beskriva program varu uppdateringar.