KB4575689 – RETTELSE: Forkerte resultater kan forekomme, når du kører en forespørgsel på sammenkædede servere med aggregater eller joinforbindelser i en tabel med filtreret indeks på en fjernserver i SQL Server

Gælder for
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

Symptomer

Antag, at du kører en forespørgsel med aggregeringer og joinforbindelser (for eksempel: TÆL MED GROUP BY) på en tabel med filtreret indeks i SQL Server, der bruges som fjernserver, og brugeren har ikke tilladelsen VIS DEFINITION. I dette scenarie betragter den sammenkædede server det filtrerede indeks som et fuldt entydigt indeks, og forespørgslen returnerer forkerte resultater.

Flere oplysninger

Når du kører en ekstern forespørgsel, bruger den sammenkædede serverproces indeksmetadata til at optimere forespørgslen. Hvis du ikke har VISNINGSDEFINITION-tilladelse til den database, der forespørges på, angiver metadataene ikke, at indekset er et filtreret indeks, og forespørgselsoptimering betragter indekset som et fuldt entydigt indeks. Denne rettelse retter indeksmetadataene for et filtreret indeks, når du ikke har tilladelse til at vise definition, så den kan tages i betragtning af forespørgselsoptimeringen.

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Løsning

Dette problem er rettet i følgende kumulative opdateringer til SQL Server:

Bemærk: Denne rettelse bør anvendes på den fjerntilknyttede server.

Om kumulative opdateringer til SQL Server:

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

Løsning

Du kan løse dette problem ved at prøve en af følgende metoder:

  • Fjern det filtrerede indeks.
  • Giv visningsdefinition til brugeren. Eksempel: GIV VISNINGSDEFINITION TIL test_user;

Referencer

Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.