KB4522127 – JAVÍTÁS: Gyenge lekérdezési teljesítmény az alacsony számosságbecslés miatt a SQL Server 2016-ban, ha az alapértelmezett CE értéket használja, és az oszlopra egy és többoszlopos statisztika egyaránt kiterjed

Hatókör
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Tünetek

Tegyük fel, hogy illesztést vagy összesítést tartalmazó lekérdezést futtat egy olyan oszlopon, amely szerepel mind az egyoszlopos, mind a többoszlopos statisztikákban (és amelyben nem ez az oszlop a vezető oszlop). Ha alapértelmezett számosságbecslőt (CE) használ az SQL Server 2016-ban, előfordulhat, hogy az alábecsüli a különálló sorok számát. Ez nem optimális lekérdezés-végrehajtási tervhez vezet (például az alacsony becslés miatt a kivonat-operátor nem biztosít elegendő memóriát, ami miatt a lekérdezés a tempdb-re ömlik).

Állapot

A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.

Megoldás

Ezt a hibát az SQL Server következő összegző frissítésében javítottuk:

Megjegyzés A javítás érvénybe léptetéséhez engedélyeznie kell a Lekérdezésoptimalizálás gyorsjavításait a nyomkövetési jelző (TF) 4199 vagy annak megfelelő adatbázis-hatókörű konfiguráció vagy lekérdezési tipp használatával.

      

Az SQL Server összegző frissítéseinek ismertetése:

Az SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és minden biztonsági javítást, amely az előző kumulatív frissítésben szerepelt. Tekintse meg az SQL Server legújabb összegző frissítéseit:

Kerülő megoldás

A hiba elhárításához adjon hozzá egy alábbi leírást a lekérdezéshez:

USE HINT('FORCE_LEGACY_CARDINALITY_ESTIMATION')

Hivatkozások

Ismerje meg a Microsoft szoftverfrissítésekkel kapcsolatos terminológiáját.