Simptome
Luați în considerare următorul scenariu:
-
Utilizați o bază de date cu nivelul de compatibilitate setat la 130 în Microsoft SQL Server 2016.
-
Executați o interogare care accesează un index de depozit de coloane și un index de depozit de rânduri sau un heap și include un predicat de filtrare (clauza WHERE).
În acest scenariu, SQL Server nu va putea împinge predicatul de filtrare mai aproape de operatorul sursei de date (scanare sau căutare tabel sau index). Acest lucru poate provoca performanța interogărilor suboptimală.
În plus, dacă interogarea utilizează o expresie (cum ar fi conversia tipului) în care corectitudinea sa depinde de datele filtrate (de exemplu, o coloană de tabel cu caractere este convertită în int, dar numai un subset de valori conține o reprezentare int validă, iar acest subset este identificat de predicatul de filtrare), atunci interogarea poate să nu reușească, cu o eroare de conversie a datelor care seamănă cu una dintre următoarele:
Msg 245, Nivel 16, Starea 1, Conversia liniei 20
nu a reușit la conversia valorii varchar '0,5' la tipul de date int.
Msg 8114, Nivel 16, Stare 5, Linie 34
Eroare la conversia tipului de date varchar la bigint.
Rezolvare
Această problemă este remediată în următoarea actualizare cumulativă pentru SQL Server:
Actualizare cumulativă 2 pentru SQL Server 2016 SP1
Notă Trebuie să activați remedierile rapide de optimizare a interogărilor pentru ca această remediere să aibă efect.
Puteți activa remedierile rapide ale utilitarului de optimizare a interogărilor utilizând una dintre următoarele opțiuni: semnalizarea de urmărire 4199, setarea configurare la baza de date QUERY_OPTIMIZER_HOTFIXES=ACTIVAT (disponibilă în SQL Server 2016 și versiunile mai recente) sau USE_HINT opțiune de interogare "ENABLE_QUERY_OPTIMIZER_HOTFIXES" (disponibilă în SQL Server 2016 SP1 și versiunile mai recente).
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Cea mai recentă actualizare cumulativă pentru SQL Server 2016
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologiape care o utilizează Microsoft pentru a descrie actualizările de software.