KB4575689 - REMEDIERE: Pot apărea rezultate incorecte atunci când rulați interogări de server legat cu agregate sau asocieri într-un tabel cu index filtrat pe un server la distanță în SQL Server

Se aplică la
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows 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) SQL Server 2019 on Windows

Simptome

Să presupunem că rulați o interogare cu agregate și asocieri (de exemplu: COUNT WITH GROUP BY) pe un tabel cu index filtrat în SQL Server care este utilizat ca server la distanță, iar utilizatorul nu are permisiunea VIEW DEFINITION. În acest scenariu, serverul legat consideră indexul filtrat ca index unic complet, iar interogarea returnează rezultate incorecte.

Mai multe informații

Când rulați o interogare la distanță, procesul serverului legat utilizează metadate de index pentru a optimiza interogarea. Când nu aveți permisiunea VIEW DEFINITION pentru baza de date interogată, metadatele nu indică faptul că indexul este un index filtrat și optimizatorul de interogare consideră că indexul este un index unic complet. Această remediere corectează metadatele de index pentru un index filtrat atunci când nu aveți permisiunea VIEW DEFINITION pentru a fi examinată de optimizatorul de interogări.

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.

Rezolvare

Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:

Notă: Această remediere ar trebui să se aplice la serverul legat la distanță.

Despre actualizările cumulative pentru SQL Server:

Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Soluție

Pentru a evita această problemă, încercați una dintre următoarele metode:

  • Eliminați indexul filtrat.
  • Acordați definiția vizualizării pentru utilizator. De exemplu: ACORDAȚI DEFINIȚIA VIZUALIZĂRII PENTRU test_user;

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.