Jelenségek
Vegye figyelembe a következő forgatókönyvet:
-
A Microsoft SQL Server 2016-ban 130-ra beállított kompatibilitási szintű adatbázist használ.
-
Olyan lekérdezést hajt végre, amely egy oszloptár-indexhez és egy sortárindexhez vagy halommemória-hoz fér hozzá, és tartalmaz egy szűrő predikátumot (WHERE záradékot).
Ebben a forgatókönyvben SQL Server nem tudja közelebb küldeni a szűrő predikátumot az adatforrás-operátorhoz (tábla- vagy indexvizsgálat vagy keresés). Ez a lekérdezések optimálisnál rosszabb teljesítményét okozhatja.
Emellett ha a lekérdezés olyan kifejezést (például típuskonverziót) használ, amelynek helyessége a szűrt adatoktól függ (például egy karaktertábla oszlopát int értékké alakítja a rendszer, de csak az értékek egy részhalmaza tartalmaz érvényes int ábrázolást, és ezt az alkészletet a szűrő predikátum azonosítja), akkor a lekérdezés az alábbihoz hasonló adatkonvertálási hibával meghiúsulhat:
A 245., 16. szint, 1. állapot, 20
. sor konvertálása sikertelen volt, amikor a "0,5" varchar értéket int adattípusra konvertálta.
Msg 8114, Level 16, State 5, Line 34
Error converting data type varchar to bigint.
Megoldás
Ezt a hibát a következő összegző frissítés tartalmazza a SQL Server:
2. összegző frissítés SQL Server 2016 SP1-hez
Megjegyzés: A javítás érvénybe léptetéséhez engedélyeznie kell a lekérdezésoptimalizáló gyorsjavításokat.
A lekérdezésoptimalizáló gyorsjavításait a következő lehetőségek egyikével engedélyezheti: 4199-beli nyomkövetési jelző, adatbázis-hatókörön belüli konfigurációs beállítás QUERY_OPTIMIZER_HOTFIXES=ON (a 2016-os és újabb SQL Server verziókban érhető el), vagy USE_HINT "ENABLE_QUERY_OPTIMIZER_HOTFIXES" lekérdezési lehetőséget (amely a SQL Server 2016 SP1 és újabb verzióiban érhető el).
A SQL Server minden új összegző frissítése tartalmazza az összes gyorsjavítást és az előző összegző frissítésben szereplő összes biztonsági javítást. Tekintse meg a SQL Server legújabb összegző frissítéseit:
A 2016-os SQL Server legújabb összegző frissítése
Állapot
A Microsoft megerősítette, hogy ez a probléma „A következőkre vonatkozik:” részben felsorolt Microsoft-termékekre vonatkozik.
Hivatkozások
Ismerje meg a Microsoft által a szoftverfrissítések leírására használt terminológiát.