KB2887888 – LØSNING: Langsom ydeevne i SQL Server, når du bygger et indeks på en afstandsdatatype for en stor tabel i en forekomst af SQL Server 2012 eller SQL Server 2014

Gælder for
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptomer

Når du forsøger at opbygge et indeks (ved hjælp af CREATE INDEX eller ALTER INDEX) på en afstandsdatatype for en stor tabel i Microsoft SQL Server 2012 eller SQL Server 2014, er striden høj på CMEMTHREAD-ventetypen, og ydeevnen af SQL Server falder.

Løsning

Problemet blev først løst i følgende kumulative opdatering af SQL Server.

Samlet opdatering 1 til SQL Server 2014 /en-us/help/2931693

Samlet opdatering 7 til SQL Server 2012 SP1 /en-us/help/2894115

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:

      

Oplysninger om hotfixopdateringspakke Der findes et understøttet hotfix fra Microsoft. Denne hotfix er dog kun beregnet til at løse det problem, der er beskrevet i denne artikel. Anvend kun dette hotfix på systemer, der har dette specifikke problem.

Hvis hotfixet kan downloades, er der afsnittet "Hotfix download available" øverst i denne Knowledge Base-artikel. Hvis dette afsnit ikke vises, skal du sende en anmodning til Microsofts kundeservice og support for at få hotfixet.

Bemærk, at hvis der opstår flere problemer, eller hvis der kræves fejlfinding, kan det være nødvendigt at oprette en separat serviceanmodning. De sædvanlige supportomkostninger gælder for yderligere supportspørgsmål og -problemer, der ikke falder ind under dette specifikke hotfix. Du kan se en komplet liste over telefonnumre til Microsofts kundeservice og support eller oprette en separat serviceanmodning på følgende Microsoft-websted:

/contactus/?ws=support Bemærk at formularen "Hotfix download tilgængelig" viser de sprog, hotfixet er tilgængeligt for. Hvis du ikke kan se dit sprog, skyldes det, at der ikke findes et hotfix for det pågældende sprog.

Flere oplysninger

En CMEMTHREAD-ventetype angiver ventetiden på de interne, trådsikre hukommelsesobjekter. Højere niveauer af forespørgselsparallelitet kan udløse ventetid, der fører til nedsat ydeevne for den rumlige aktivitet.

Denne rettelse partitionerer den CMEMTHREAD, der er knyttet til "Spatial Memory Object" ved hjælp af NUMA-nodepartitionering. Dette reducerer samtidigheden af arbejderaktiviteten til antallet af planlæggere, der er aktive på en enkelt node. For systemer med højere niveauer af planlæggere pr. node kan sporingsflag –T8048 bruges til yderligere at partitionere alle hukommelsesobjekter, der tillader partitionering med planlægger. Brug sporingsflaget med forsigtighed, da det introducerer en lille mængde hukommelsesomkostninger til alle NUMA-nodepartitionerede hukommelsesobjekter.

Bemærk! Objektet Rumlig hukommelse oprettes, når SqlServerSpatial110.dll indlæses i det SQL Server procesadresseområde. I de fleste tilfælde kræver dette en genstart af SQL Server-processen for at anvende sporingsflageffekterne.

CMEMTHREAD-ventetypen øges for alle ventetider på trådsikre hukommelsesobjekter, ikke kun for det fysiske objekt. Følgende definition af XEvent-session og brug af offentlige symboler kan bruges til at identificere den specifikke kodelinje, der genererer CMEMTHREAD waits:CREATE EVENT SESSION wait_stacks
PÅ SERVER
TILFØJ BEGIVENHED sqlos.wait_info
(
      action(package0.callstack)
      where opcode = 1 -- wait fuldført
            og wait_type = 191 – CMEMTRÅD
)
add target package0.asynchronous_bucketizer (SET source_type = 1, source = 'package0.callstack'),
tilføj mål package0.ring_buffer (SET max_memory = 4096)
Med (MAX_DISPATCH_LATENCY = 1 SEKUNDER)
Udfør
ALTER EVENT Session wait_stacks on server state = start
gå

Kør genskabelsen

vælg event_session_address, target_name, execution_count, cast (target_data som XML)
Fra sys.dm_xe_session_targets XST
      Indre joinforbindelse sys.dm_xe_sessions xs til (xst.event_session_address = xs.adresse)
hvor xs.name = 'wait_stacks'
gå

Status

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