Отнася се за
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2012 Express SQL Server 2012 Web SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2008 Service Pack 3 SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Standard SQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard

По подразбиране Service Pack 1 за SQL Server 2014 и Service Pack 3 за SQL Server 2012 включват тази корекция и не трябва да добавите всички флагове за проследяване да разрешите корекцията. За да активирате корекцията след инсталиране на една от кумулативни актуализации в раздела "решение", трябва да стартирате Microsoft SQL Server чрез добавяне на флаг за проследяване 1236 стартиране параметри.

Симптоми

Да предположим, че изпълнявате екземпляр на Microsoft SQL Server 2014, SQL Server 2012, SQL Server 2008 и SQL Server 2008 R2 на компютър, който съдържа много процесори. Когато броят на заключване (ресурс = база данни) за определена база данни, надвишава определен праг, имате следните проблеми с производителността:

  • Повишени стойности се дължи на броя на LOCK_HASH Нишков поток.Забележка: Вижте раздела "Допълнителна информация" за информация как да наблюдава този Нишков поток.

  • Въпроси или операции, които изискват база данни locks отнеме много време да бъде завършена. Например можете да забележите следните закъснения изпълнение:

    • Влизания с SQL Server

    • Заявки за свързан сървър

    • sp_reset_connection

    • Транзакции

Забележка За да намерите списъка на заключване (ресурс = база данни) на дадена база данни, вижте раздела "Допълнителна информация". Гранична стойност зависи от околната среда.

Всеки нов сборна актуализация за SQL Server съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишната сборна актуализация. Вижте най-новите сборни актуализации за SQL Server:

Информация за актуалната корекцияПоддържана актуална корекция се предлага от Microsoft. Тази актуална корекция обаче е предназначена да коригира само проблема, описан в тази статия. Прилагайте тази корекция само към системи, изпитващи този конкретен проблем.Ако актуалната корекция е налична за изтегляне, има секция "Актуални корекции достъпни за теглене" в горната част на тази статия от базата знания. Ако тази секция не се появи, изпратете заявка за обслужване на клиенти на Microsoft и поддръжка, за да получите актуалната корекция.Забележка: Ако възникнат допълнителни проблеми или проблеми, трябва да създадете отделна заявка за поддръжка. Обичайните такси за поддръжката ще важат за допълнителни въпроси и проблеми, които не спадат към конкретната актуална корекция. За пълен списък на телефонните номера на Microsoft за обслужване на клиенти и поддръжка или да създадете отделна заявка за поддръжка посетете следния уеб сайт на Microsoft:

http://support.microsoft.com/contactus/?ws=supportЗабележка: Формулярът "Актуални Download наличен" показва езиците, за които е налична актуалната корекция. Ако не виждате вашия език, това е защото актуалната корекция не е налична за този език.

Статус

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".

Допълнителна информация

Когато приложението прави връзка към SQL Server, първо установи контекста на базата данни. По подразбиране връзката ще се опита да получи заключване на базата данни в режим на SH. Заключване SH-база данни ще бъде освободена, когато връзката е спрян или контекст на базата данни е променена по време на експлоатационния живот на връзката. Ако имате много активни връзки, които използват същия контекст на база данни, можете да имате много заключване на базата данни ресурс за тази база данни.На компютър, който има 16 или повече процесори само таблица обекти използват деление заключване схема. Обаче не са само заключване на базата данни. Следователно по-голям брой база данни се заключва, повече време отнема за SQL Server, за да получите заключване на базата данни. Повечето приложения възникват проблеми, причинени от този дизайн. Но веднага след като номер надвишава определен праг, допълнителна работа и време е необходимо да получи заключване. Въпреки че цената е само micro секунди за всеки допълнителен заключване, общото време бързо да увеличите защото заключване хеш кофи са защитени чрез Нишков поток. Това води до допълнителни цикли на Процесора и чака допълнителни работници, за да получите заключване.Тази актуална корекция въвежда база данни за заключване на дялове когато флаг за проследяване T1236 е активирана при стартиране. Разделяне на база данни за заключване поддържа дълбочината на заключване на списъка управляеми всеки локален дял. Това значително оптимизира път за достъп, който се използва за получаване на заключване на базата данни .Да наблюдава LOCK_HASH Нишков поток, можете да използвате следната заявка.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 = 1WHILE @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 ENDSELECT * FROM #spinlock_stats ORDER BY [CaptureTime]DROP TABLE #spinlock_stats За повече информация за диагностика и разрешаване на спор Нишков поток на SQL сървър отидете на следния документ:

Диагностика и разрешаване на спор Нишков поток на SQL сървърЗабележка Въпреки че този документ е предназначена за SQL Server 2008 R2, информацията е продължават да се прилагат за SQL Server 2012.

Препратки

За повече информация относно флагове за проследяване в SQL Server 2012 посетете следния уеб сайт на TechNet:

Информация за флагове за проследяване в SQL Server 2012 За повече информация как да намерите броя на заключване на базата данни на потребител на базата данни използвайте следната заявка за изчисляване на тази стойност: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

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.