Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Som standard ingår denna korrigering Service Pack 1 för SQL Server 2014 och Service Pack 3 för SQL Server 2012 och du behöver inte lägga till några trace-flaggor om du vill aktivera korrigeringen. Om du vill aktivera snabbkorrigeringen efter installation av kumulativa uppdateringar i avsnittet lösning, måste du starta Microsoft SQL Server genom att lägga till spårningsflagga 1236 Startparametrar.

Symptom

Anta att du kör en instans av Microsoft SQL Server 2014, SQL Server 2012, SQL Server 2008 eller SQL Server 2008 R2 på en dator med flera processorer. När antalet lås (resurstyp = databas) för en viss databas överstiger ett visst tröskelvärde, uppstår följande prestandaproblem:

  • Förhöjda värden inträffar för LOCK_HASH spinlock antal.

    Obs! I avsnittet "Mer Information" finns information om hur du övervakar den här spinlock.

  • Frågor eller åtgärder som kräver databas Lås ta lång tid att slutföras. Till exempel finnas förskjutningar följande prestanda:

    • SQL Server-inloggning

    • Länkad server frågor

    • sp_reset_connection

    • Transaktioner

Obs! Leta upp listan med lås (resurstyp = databas) på en viss databas finns i avsnittet "Mer Information". Tröskelvärdet varierar beroende på miljö.

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Checka ut de senaste kumulativa uppdateringarna för SQL Server:


Information om snabbkorrigeringen
En snabbkorrigering är tillgänglig från Microsoft. Den här snabbkorrigeringen är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd bara den här snabbkorrigeringen för system med just detta problem.

Om snabbkorrigeringen är tillgänglig för hämtning finns "Snabbkorrigeringen tillgänglig för hämtning" överst i den här Knowledge Base-artikeln. Om det här avsnittet inte visas, skicka en begäran till Microsofts kundtjänst och Support för att få snabbkorrigeringen.

Obs! Om det uppstår ytterligare problem eller krävs felsökning, kan du behöva skapa en serviceförfrågan. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte uppfyller kraven för den här snabbkorrigeringen. En fullständig lista över telefonnummer för Microsofts kundtjänst och Support eller skapa en serviceförfrågan finns på följande Microsoft-webbplats:

http://support.microsoft.com/contactus/?ws=supportObs! "Snabbkorrigering tillgänglig för hämtning" formuläret visar de språk som snabbkorrigeringen är tillgänglig på. Om ditt språk inte visas beror det på att ingen snabbkorrigering är tillgänglig för språket.

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Mer Information

När ett program gör en anslutning till SQL Server, skapar först en databas kontext. Anslutningen görs ett försök att hämta ett lås för databasen i SH-läge som standard. Låset SH-databasen kommer att släppas när anslutningen har stoppats eller databaskontexten ändras under giltighetstiden för anslutningen. Om du har många aktiva anslutningar som använder samma databas kontext har du många Lås för resurstyp för databasen för den specifika databasen.

På datorn som innehåller 16 eller fler processorer, Använd bara tabellobjekt ett partitionerat Lås system. Lås för databasen är inte partitionerats. Därför större antal databas låser, desto längre tid tar det för SQL Server för att hämta ett lås i databasen. De flesta program uppstår inte de problem som orsakas av den här designen. Men så snart antalet överstiger ett visst tröskelvärde, mer arbete och tid krävs för att få låset. Men kostnaden är endast micro sekunder för varje ytterligare lås, öka den totala tiden snabbt eftersom Lås hash buckets skyddas med hjälp av en spinlock. Detta medför att ytterligare CPU-cykler och väntar ytterligare arbetstagare att få låset.

Med denna snabbkorrigering införs Lås Databaspartitionering när spårningsflagga T1236 aktiveras vid start . Partitionering databas Lås behåller djupet i listan Lås hanterbar i varje lokal partition. Detta optimerar betydligt åtkomstsökväg som används för att hämta ett lås för databasen .

Du kan använda följande fråga om du vill övervaka LOCK_HASH spinlock.SET NOCOUNT ONCREATE TABLE #spinlock_stats([CaptureTime] datetime,[name] nvarchar(512),[collisions] bigint,
[spins] bigint,[spins_per_collision] real,[sleep_time] bigint,[backoffs] int)
DECLARE @counter int = 1
WHILE @counter < 100
BEGIN
INSERT INTO #spinlock_stats SELECT GETDATE() as "CaptureTime" , * FROM sys.dm_os_spinlock_stats WHERE [name] = 'LOCK_HASH'
WAITFOR DELAY '00:00:05'
SET @counter +=1
END
SELECT * FROM #spinlock_stats ORDER BY [CaptureTime]
DROP TABLE #spinlock_stats
Mer information om att diagnostisera och lösa spinlock konkurrens på SQL Server finns i följande dokument:

Diagnostisera och lösa Spinlock konkurrens på SQLServerObs! Även om det här dokumentet är skrivet för SQL Server 2008 R2, är informationen fortfarande gäller för SQL Server 2012.

Referenser

Mer information om trace-flaggor i SQL Server 2012 finns i följande TechNet-webbplats:

Information om trace-flaggor i SQL Server 2012
Mer information om hur du tar reda på antalet lås i databasen i användare per databas följande fråga användas för att beräkna detta värde:select Resource_database_id, resource_type, request_mode, request_status, count (*) 'LockCount' from sys.dm_tran_locks
group by Resource_database_id, resource_type, request_mode, request_status


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.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×