Korriger: Contentions oppstår når du kjører mange ad hoc-spørringer i SQL Server 2012

VIKTIG: Denne artikkelen ble oversatt med maskinoversettelsesprogramvare fra Microsoft og muligens redigert av Microsoft Community via CTF-teknologi i stedet for av en oversetter. Microsoft tilbyr både menneskelig oversatte og maskinoversatte/Community-redigerte artikler, slik at du får tilgang til alle artiklene i vår Knowledge Base på ditt eget språk. En maskinoversatt eller Community-redigert artikkel er imidlertid ikke alltid perfekt. Den kan inneholde feil i vokabular, syntaks eller grammatikk, mye likt en fremmedspråklig som forsøker å snakke språket ditt. Microsoft har ikke ansvar for unøyaktige opplysninger, feil eller skade forårsaket av feilaktig oversettelse av innholdet eller kundenes bruk av informasjonen. Microsoft oppdaterer jevnlig maskinoversettelsesprogramvaren og -verktøyene for å forbedre redigering av maskinoversatte tekster.

Den engelske versjonen av denne artikkelen er den følgende: 3074425
Symptom
Anta at du har mange statistikk og tabeller, og tabellene inneholder mange kolonner i en database for Microsoft SQL Server 2012. Når du utfører mange ad hoc-spørringer til å hente data fra disse tabellene samtidig, kan det oppstå contentions.
Løsning

Informasjon om kumulativ oppdatering

Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server. Anbefaling: Installere den nyeste kumulative oppdateringen for SQL Server
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Vi anbefaler at du laster ned og installerer de nyeste kumulative oppdateringene for SQL Server:
Mer informasjon
Når youcompile eller ny kompilering en spørring i SQL Server 2012, motoren må hente inndata fra statistikk histogram. Vi trenger å utføre et tabellsøk systemet og deretter laste inn bestemt histogrammet av tabellene som er involvert i minnet eller hurtigbufferen. Tabellpostene system (for statistikk) er lagret i hurtigbufferen for systemtabellen (CACHESTORE_SYSTEMROWSET). Minneobjektet brukes til å opprette disse oppføringene i hurtigbufferen er ikke partisjonert og er globale.

Derfor, hvis du har samtidige minnetildelinger utført i løpet av denne operasjonen, vil det oppståCMEMTHREAD venter på dette minneobjektet. Dette skjer vanligvis når du sender mange spørringer som krever kompilering eller kompileres på nytt.

Denne hurtigreparasjonen endrer objektet globalt minne som skal partisjoneres slik at samtidige minnetildelinger som bruker hurtigbufferen systemtabellen ikke vil oppstår kamp om ressursene ogCMEMTHREAD venter.

Hvis du vil ha mer informasjon om lignende problem, seKB 3026082: Løse: SOS_CACHESTORE spinlock kamp om ressursene på tabellen Radsettet hurtigbufferen forårsaker høy CPU-bruk i SQL Server 2012 eller 2014.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Advarsel: Denne artikkelen er autooversatt

Egenskaper

Artikkel-ID: 3074425 – Forrige gjennomgang: 07/23/2015 11:00:00 – Revisjon: 1.0

Microsoft SQL Server 2012 Service Pack 2

  • kbqfe kbsurveynew kbfix kbexpertiseadvanced kbmt KB3074425 KbMtno
Tilbakemelding