Logg på med Microsoft
Logg på, eller opprett en konto.
Hei,
Velg en annen konto.
Du har flere kontoer
Velg kontoen du vil logge på med.

Symptomer

Tenk deg følgende:

  • En koblet server er konfigurert mellom en lokal server og en ekstern server som begge har 2012 for Microsoft SQL Server-forekomster.

  • Den lokale serveren er konfigurert ved hjelp av en sammenlikning, for eksempel sortering.

  • Den eksterne serveren har et objekt som er konfigurert i en annen sortering fra den lokale serveren, for eksempel bokstaver sammenlikning.

  • En tilkobling blir gjort fra Microsoft JDBC-driveren for SQL Server, Microsoft ODBC-driveren for SQL Server, SQL OLE DB-leverandøren eller SQL Native Client til den lokale serveren.

  • Driveren kjører en oppdateringsspørring for Transact-SQL som en forberedt erklæring som kaller opp prosedyren med sp_prepexec som er lagret på den lokale serveren.

  • Spørringen oppdaterer en tabell på den eksterne serveren. Dette inkluderer en kolonneobjekt som bruker en annen sortering fra den lokale serveren.

I dette scenariet kan du oppleve treghet av spørjinga. Hvis du merker utførelsesplanen av oppdateringsspørringen, kan det hende at en ekstern skanning utføres på tabellen i den eksterne serveren uten å filtrere. Spørringen kan derfor utføre mange leser når den søker gjennom ekstern tabell og henter deretter alle rader tilbake til den lokale serveren.

Hvis du for eksempel spørringen er forberedt på den lokale serveren som har case-insensitive standardsorteringen, og den eksterne serveren har en tabell T1 som inneholder en kolonne som er små og store bokstaver. Oppdateringen vil skanne alle radene i 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

Årsak

Dette problemet oppstår fordi forberedt oppdateringsspørringen skanner ekstern tabell når ikke stemmer overens med sorteringen på begge serverne.

Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:


Informasjon om hurtigreparasjonEn støttet hurtigreparasjon er tilgjengelig fra Microsoft. Denne hurtigreparasjonen er imidlertid ment å løse problemet som er beskrevet i denne artikkelen. Bruk denne hurtigreparasjonen bare på systemer som har dette bestemte problemet.

Hvis hurtigreparasjonen er tilgjengelig for nedlasting, finnes delen "Nedlasting av hurtigreparasjoner tilgjengelig" øverst i denne Knowledge Base-artikkelen. Hvis denne delen ikke vises, kan du sende en forespørsel til Microsofts kundeservice og kundestøtte for å få hurtigreparasjonen.

Obs! Hvis det oppstår andre problemer, eller hvis feilsøkingstips, må du kanskje opprette en separat forespørsel om. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av denne oppdateringen. For en fullstendig liste over telefonnumre for Microsofts kundeservice og kundestøtte eller opprette en separat forespørsel om, kan du gå til følgende Microsoft-webområde:

http://support.microsoft.com/contactus/?ws=supportObs! "Nedlasting av hurtigreparasjoner tilgjengelig"-skjemaet viser språk hurtigreparasjonen er tilgjengelig. Hvis du ikke ser språket ditt, er det fordi en hurtigreparasjon ikke er tilgjengelig for dette språket.

ForutsetningerHvis du vil bruke denne hurtigreparasjonen, må du ha SQL Server 2012 installert.

Informasjonen i registeretDu har ikke til å endre registret etter at du har installert denne hurtigreparasjonen.

Informasjon om erstatning av hurtigreparasjonerDenne hurtigreparasjonen erstatter ikke andre hurtigreparasjoner.


Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Løsningen

Å arbeide abound problemet, bruker du en av følgende metoder:

  • Ikke bruk klargjorte setninger i kildekoden for klient-program. Du kan bruke ad hoc-setninger eller callable setninger som lagrede prosedyrer i stedet hvis driveren støtter disse grensesnittene.

  • Bruk samsvarende sammenlikning på begge serverne.

Hvis du vil ha mer informasjon

For å aktivere sporingsflagget, legge til oppstartsparameteren -T4199 eller DBCC TRACEON(4199,-1) før klargjort setning er kompilert for å aktivere-virkemåten.

Du kan bruke én av følgende metoder til å aktivere sporingsflagget:

  • Før du starter SQL Server, bruker Microsoft SQL Server Configuration Manager, høyreklikk den aktuelle forekomsten og legge til oppstartsparameteren -T4199 slik at den fortsetter over omstarter og på tvers av alle tilkoblinger til forekomsten i fremtiden.

  • Aktiver dynamisk innstillingen ved kjøretid når tjenesten blir startet, og globalt for alle tilkoblinger "(-1)." Pass på å frigjøre prosedyrebufferen Hvis du planlegger å gjøre tester med bryteren aktivert eller deaktivert.

    Bruk følgende for å aktivere innstillingen globalt og dynamisk:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Bruke følgende for å deaktivere innstillingen globalt og dynamisk:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?
Når du trykker på Send inn, blir tilbakemeldingen brukt til å forbedre Microsoft-produkter og -tjenester. IT-administratoren kan samle inn disse dataene. Personvernerklæring.

Takk for tilbakemeldingen!

×