Symptomer
Når du bruker Avstandstoleranse datatype og tilhørende metoder i 2012 for Microsoft SQL Server eller Microsoft SQL Server-2014, er i SQL Server-operativsystemet (SQLOS)-scheduler kvantum mål beskyttet av SQL Server CLR vert laget. Denne typen beskyttelse som involverer preemptive, SQLOS-svitsjer kan øke CPU-forbruk. Årsaken til bryteren preemptive er å beskytte SQLOS planleggeren. Et kall til en SQL Server CLR-basert implementering kan ta uspesifisert tid uten å SQLOS scheduler eller endre virkemåten og samtidighet mønstrene. Derfor er Avstandstoleranse datatypen utformet for å bytte preemptive under hver aktivering.
Obs! Avstandstoleranse datatypen er basert på SQL Server-CLR, kan det oppstå forskjellige nivåer av .NET minneforbruk og tråd bytte virkemåte.
Årsak
Avstandstoleranse data type metoder kjøringer er vanligvis underordnede millisekunder, og krever kanskje ikke fullstendig SQL OS scheduler og preemptive beskyttelse. Indirekte kostnader for å bytte til og fra preemptive modus kan være mye større enn utførelsen av metoden Avstandstoleranse seg selv.
Oppløsning
Denne hurtigreparasjonen innfører sporingsflagg 6531 fortelle SQLOS vert laget at datatypen Avstandstoleranse bør unngå preemptive beskyttelse. Dette kan redusere CPU-forbruk og forbedre den generelle ytelsen for avstandstoleranse aktiviteter. Bare Bruk denne sporingsflagg Hvis individuelle, Avstandstoleranse metode-anrop (per rad og kolonne) tar mindre enn ~ 4ms. Lengre anrop uten preemptive beskyttelse kan føre til Oppgaveplanlegging samtidighet problemer og SQLCLR støyt meldinger logget til feilloggen.
Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.
Kumulativ oppdatering 4 for SQL Server 2012 SP2/en-us/help/3007556
Kumulativ oppdatering 5 for SQLServer 2014/en-us/help/3011055
Kumulativ oppdatering 13 for SQL Server 2012 SP1/en-us/help/3002044
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:
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".