Applies ToSQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Microsoft distribuerar Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) eller Microsoft SQL Server 2012-korrigeringar i en nedladdnings bar fil. Eftersom de här korrigeringarna är kumulativa innehåller alla nya versioner alla snabb korrigeringar och alla säkerhets uppdateringar som ingick i föregående version av SQL Server 2008 R2 Service Pack 1 (SP1) eller Microsoft SQL Server 2012.

Symptom

Tänk dig följande situation:

  • Du installerar en instans av Microsoft SQL Server 2008 R2 eller Microsoft SQL Server 2012 på en dator.

  • Samtidiga utdrag som liknar följande körs i instansen:

    CREATE PROC p AS RETURN (
    query
    ); EXEC p;

    Du kör en fråga som innehåller följande kod:

    IF EXISTS(
    subquery
    );
  • CPU-användningen är genomgående hög och arbets trådarna är i runnable-läge.

  • Innehållet i QUERY_EXEC_STATS spinlock är högt. Till exempel kan antalet rotationer, möjliga kollisioner och spinlock- QUERY_EXEC_STATS värden snabbt öka.Obs! Mer information om hur du övervakar QUERY_EXEC_STATS spinlock finns i avsnittet "Mer information".

I det här scenariot kan långsam prestanda uppstå.

Orsak

Det här problemet beror på att SQL Server 2008 R2 eller SQL Server 2012 skapar och förstör vissa minnes strukturer i stället för att cachelagra dem. Detta orsakar en Flask hals.

Lösning

Kumulativ uppdaterings information

SQL Server 2012

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 1 för SQL Server 2012. Om du vill veta mer om det här kumulativa uppdaterings paketet klickar du på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:

2679368 Kumulativt uppdaterings paket 1 för SQL Server 2012Obs! Eftersom build-versionerna är kumulativa innehåller varje ny korrigerings utgåva alla snabb korrigeringar och alla säkerhets korrigeringar som ingick med föregående version av SQL Server 2012. Microsoft rekommenderar att du använder den senaste korrigerings versionen som innehåller den här snabb korrigeringen. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2692828 SQL Server 2012-versioner som släpptes efter att SQL Server 2012 släpptes Du måste använda en SQL Server 2012 Hotfix för en installation av SQL Server 2012.

Kumulativt uppdaterings paket 5 för SQL Server 2008 R2 SP1

Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 5. Om du vill veta mer om hur du hämtar det här kumulativa uppdaterings paketet för SQL Server 2008 R2 SP1 klickar du på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:

2659694 Kumulativt uppdaterings paket 5 för SQL Server 2008 R2 SP1Obs! Eftersom build-versionerna är kumulativa innehåller varje ny korrigerings utgåva alla snabb korrigeringar och alla säkerhets korrigeringar som ingick med den tidigare versionen av SQL Server 2008 R2 SP1. Vi rekommenderar att du använder den senaste korrigerings versionen som innehåller den här snabb korrigeringen. Om du vill veta mer klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2567616 SQL Server 2008 R2-versioner som släpptes efter SQL Server 2008 R2 SP1

Mer information

Om du vill övervaka QUERY_EXEC_STATS spinlock kan du justera fördröjning och antal iterationer efter din miljö i följande kod och sedan köra den:

SET NOCOUNT ONCREATE 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 = 1WHILE @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      ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins

Status

Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.