FIX: Trage prestaties plaatsvindt in SQL Server 2008 R2 of in SQL Server 2012 als hoog CPU-gebruik is waargenomen bronconflicten via de spinlock QUERY_EXEC_STATS

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 2662301 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Microsoft distribueert Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) of Microsoft SQL Server-2012 correcties in één downloadbaar bestand. Aangezien de oplossingen cumulatief zijn, elke nieuwe release bevat de hotfixes en de beveiligingsupdates die opgenomen in de vorige SQL Server 2008 R2 Service Pack 1 (SP1) of Microsoft SQL Server-2012 zijn update release.

Symptomen

Het volgende scenario:
  • U kunt een exemplaar van Microsoft SQL Server 2008 R2 of 2012 van Microsoft SQL Server installeert op een computer.
  • Gelijktijdige instructies die lijken op de volgende worden in de instantie uitgevoerd:
    CREATE PROC p AS RETURN (
    query
    ); EXEC p;
    Of u een query de volgende code bevat uitvoeren:

    IF EXISTS(
    subquery
    );
  • CPU-gebruik voortdurend hoog is en de werkthreads zijn in runnable staat.
  • De bewering van de QUERY_EXEC_STATS spinlock is hoog.
    Bijvoorbeeld het aantal spin, mogelijke conflicten en de waarden weer uitschakelen voor de QUERY_EXEC_STATS spinlock snel toenemen.
    Opmerking Voor meer informatie over het controleren van de QUERY_EXEC_STATS spinlock, Zie de sectie 'Meer informatie'.

In dit scenario optreden vertragingen.

Oorzaak

Dit probleem omdat SQL Server 2008 R2 optreedt of SQL Server-2012 gemaakt en vernietigt sommige geheugenstructuren over algemene statistieken in plaats van deze in cache. Hierdoor ontstaat een prestatieknelpunt.

Oplossing

Informatie over de cumulatieve update

SQL-Server 2012

De correctie voor dit probleem werd eerst uitgebracht in de cumulatieve Update 1 voor SQL Server-2012. Voor meer informatie over dit cumulatieve updatepakket klikt u op het volgende artikelnummer in de Microsoft Knowledge Base:
2679368 Cumulatieve updatepakket 1 voor SQL Server-2012
Opmerking Omdat de builds cumulatief zijn, elke nieuwe release correctie bevat de hotfixes en de beveiligingscorrecties die opgenomen in de vorige SQL Server 2012 zijn release opgelost. Microsoft raadt aan u de meest recente fix release waarin deze hotfix toepast. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:
2692828 De SQL Server-2012 bouwt die zijn uitgebracht na 2012 van SQL Server werd uitgebracht.
U moet een hotfix voor SQL Server 2012 toepassen op een installatie van SQL Server-2012.

Pakket 5 cumulatieve update voor SQL Server 2008 R2 SP1

De correctie voor dit probleem werd eerst uitgebracht in de cumulatieve Update 5. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over het verkrijgen van dit cumulatieve updatepakket voor SQL Server 2008 R2 SP1:
2659694 Pakket 5 cumulatieve update voor SQL Server 2008 R2 SP1
Opmerking Omdat de builds cumulatief zijn, elke nieuwe release correctie bevat de hotfixes en de beveiligingscorrecties die opgenomen in de vorige SQL Server 2008 R2 SP1 zijn release opgelost. Wij raden de meest recente fix release waarin deze hotfix toepast. Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie:
2567616 SQL Server 2008 R2 bouwt die zijn uitgebracht nadat SQL Server 2008 R2 SP1 is uitgebracht.

Meer informatie

De spinlock QUERY_EXEC_STATS controleren, de vertraging en het aantal iteraties voor uw omgeving in de volgende code aanpassen en uitvoeren:

SET NOCOUNT ON
CREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())
DECLARE @counter int = 1
WHILE @counter < 10
      BEGIN
            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')
            WAITFOR DELAY '00:00:05'
            SET @counter +=1
      END
SELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTime
DROP TABLE #spins

Status

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

Eigenschappen

Artikel ID: 2662301 - Laatste beoordeling: donderdag 12 april 2012 - Wijziging: 1.0
De informatie in dit artikel is van toepassing op:
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
Trefwoorden: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2662301 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:2662301

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com