Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Symptomen

Overweeg het volgende scenario:

  • Een gekoppelde server is geconfigureerd tussen de lokale en een externe server hebben beide exemplaren van Microsoft SQL Server 2012.

  • De lokale server is geconfigureerd met een sortering, zoals een niet-hoofdlettergevoelige sortering.

  • De externe server heeft een object dat is geconfigureerd in een andere sortering van de lokale server, zoals een hoofdlettergevoelige sortering.

  • Een verbinding wordt gemaakt van Microsoft JDBC-stuurprogramma voor SQL Server, SQL Server, de SQL OLE DB-provider of de SQL Native Client ODBC-stuurprogramma op de lokale server.

  • Het stuurprogramma wordt uitgevoerd een Transact-SQL update-query als een voorbereide instructie die de procedure sp_prepexec is opgeslagen op de lokale server roept.

  • De query een tabel op de externe server bijgewerkt. Dit omvat een column-object dat een andere sortering van de lokale server gebruikt.

In dit scenario kan traag van uitvoering van de query. Als u het selectievakje het uitvoeringsplan van de update-query, ziet u dat een externe scan zonder te filteren op de tabel in de externe server wordt uitgevoerd. Daarom kan de query veel uitvoeren wanneer het scannen van de externe tabel en vervolgens alle rijen naar de lokale server worden.

Bijvoorbeeld, de query wordt voorbereid op de lokale server met niet-hoofdlettergevoelige standaardsortering en de externe server heeft een tabel T1 die een kolom bevat die zijn hoofdlettergevoelig. De update scant alle rijen van T1.
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

Oorzaak

Het probleem treedt op omdat de voorbereide bijwerkquery de externe tabel scant als de sortering niet op beide servers overeenkomt.

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingscorrecties die zijn opgenomen in de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:


Informatie over de hotfixEen ondersteunde hotfix is beschikbaar bij Microsoft. Deze hotfix is echter alleen bedoeld voor het probleem dat wordt beschreven in dit artikel. Voer deze hotfix alleen uit op systemen waarop dit specifieke probleem zich voordoet.

Als de hotfix gedownload kan worden, is er een sectie 'Hotfix downloaden' aan het begin van dit Knowledge Base-artikel. Als deze sectie niet wordt weergegeven, dien dan een verzoek in bij Microsoft Customer Service and Support om de hotfix te verkrijgen.

Opmerking Als er andere problemen optreden of als probleemoplossing is vereist, moet u wellicht een apart serviceverzoek indienen. De normale ondersteuningskosten gelden voor extra ondersteuningsvragen en problemen die niet in aanmerking komen voor deze specifieke hotfix. Voor een volledige lijst met telefoonnummers van Microsoft Customer Service and Support of een afzonderlijk serviceverzoek maken, gaat u naar de volgende Microsoft-website:

http://support.microsoft.com/contactus/?ws=supportOpmerking Het formulier 'Hotfix kan worden gedownload' geeft de talen weer waarvoor de hotfix beschikbaar is. Als uw taal niet wordt weergegeven, is dit omdat een hotfix niet voor die taal beschikbaar is.

VereistenDeze hotfix moet u SQL Server 2012 geïnstalleerd hebben.

Informatie over het registerU beschikt niet over het register wijzigen nadat u deze hotfix hebt toegepast.

Informatie over het vervangen van hotfixesDeze hotfix vervangt geen andere hotfixes.


Status

Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.

Tijdelijke oplossing

Werkt iedereen kent wel het probleem, gebruikt u een van de volgende methoden:

  • Gebruik geen voorbereide instructies in de broncode van de client-toepassing. Kunt u ad hoc-instructies of callable overzichten zoals opgeslagen procedures in plaats daarvan als het stuurprogramma deze interfaces ondersteunt.

  • Overeenkomende sortering op beide servers gebruiken.

Meer informatie

Toevoegen zodat de traceringsvlag opstartparameter -T4199 of DBCC TRACEON(4199,-1) voordat de voorbereide instructie zodat het gedrag wordt gecompileerd.

U kunt een van de volgende methoden de traceringsvlag inschakelen:

  • Voordat u SQL Server, Microsoft SQL Server Configuration Manager gebruiken, met de rechtermuisknop op het desbetreffende exemplaar en de opstartparameter toevoegen -T4199 zodat blijft bestaan tussen het opnieuw opstarten en alle verbindingen met het exemplaar in de toekomst.

  • Dynamisch de inschakelt tijdens runtime nadat de service is gestart en globaal voor alle verbindingen "(-1)." Zorg ervoor dat de procedurecache vrij te maken als u wilt testen met de schakeloptie ingeschakeld of uitgeschakeld.

    Gebruik het volgende om de instelling globaal en dynamisch:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Gebruik het volgende om de instelling te schakelen globaal en dynamisch:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×