Príznaky
Predpokladajme, že spúšťate dotaz obsahujúci spojenie alebo agregáciu pre stĺpec, na ktorý sa vzťahuje štatistika jedného stĺpca aj štatistiky viacerých stĺpcov (pričom tento stĺpec nie je úvodným stĺpcom). Ak používate predvolený odhad kardinality (CE) v SQL Server 2016, môže sa podhodnotiť počet jedinečných riadkov. Výsledkom nie je optimálny plán vykonávania dotazu (napríklad nízky odhad môže spôsobiť nedostatočné pridelenie pamäte pre operátor hash, čo spôsobí presahovanie dotazu na databázu tempdb).
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.
Riešenie
Tento problém je opravený v nasledujúcej kumulatívnej aktualizácii pre SQL Server:
Poznámka Ak chcete, aby sa táto oprava prejavila, je potrebné povoliť rýchle opravy optimalizátora dotazov pomocou príznaku sledovania (TF) 4199 alebo zodpovedajúcej konfigurácie databázy alebo možnosti pomôcky dotazu.
Informácie o kumulatívnych aktualizáciách pre SQL Server:
Každá nová kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Alternatívne riešenie
Tento problém možno vyriešiť pridaním nasledujúcej pomôcky pre dotaz:
USE HINT('FORCE_LEGACY_CARDINALITY_ESTIMATION')
Odkazy
Získajte informácie o terminológii, ktorú Microsoft používa na popis aktualizácií softvéru.