Symptomen
Stel dat u een query met aggregates en joins uitvoert (bijvoorbeeld: COUNT WITH GROUP BY) in een tabel met een gefilterde index in SQL Server die wordt gebruikt als een externe server en de gebruiker niet over de machtiging VIEW DEFINITION heeft. In dit scenario beschouwt de gekoppelde server de gefilterde index als een volledig unieke index en retourneert de query onjuiste resultaten.
Meer informatie
Wanneer u een externe query uitvoert, worden voor het proces van de gekoppelde server indexmetagegevens gebruikt om de query te optimaliseren. Wanneer u niet de machtiging VIEW DEFINITION hebt voor de database waarop een query wordt uitgevoerd, betekent de metagegevens niet dat de index een gefilterde index is en de query optimizer beschouwt de index als een volledig unieke index. Deze oplossing corrigeert de indexmetagegevens voor een gefilterde index als u niet over de machtiging VIEW DEFINITION kunt nadenken door de Query Optimizer.
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Oplossing
Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:
Opmerking:Deze oplossing moet worden toegepast op de externe gekoppelde server.
Cumulatieve updates voor SQL Server:
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsfixes die zijn opgenomen in de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:
Workaround
U kunt dit probleem op een van de volgende manieren oplossen:
-
Verwijder de gefilterde index.
-
Geef de gebruiker een weergavedefinitie. Bijvoorbeeld: WEERGAVEDEFINITIE VERLENEN AAN test_user;
Verwijzingen
Lees meer over de terminologie die Microsoft gebruikt om software-updates te beschrijven.