Симптоми
Имайте предвид сценария, описан по-долу:
- Изпълнявате ALTER INDEX ... ОНЛАЙН заявка в Microsoft SQL Server 2012 или SQL Server 2014.
- Тази заявка е прекратена поради блокиране или поради инициирано от потребителя действие, като изпълнение на команда за прекратяване или отмяна на заявката.
В този случай всички DML операции, които трябва да използват индексни метаданни, или са блокирани, или отнемат много време, за да бъдат завършени.
Освен това може да наблюдавате следните симптоми:
- Стойности с повишени стойности за типа PWAIT_MD_RELATION_CACHE или MD_LAZYCACHE_RWLOCK wait, когато извършвате заявка към изгледите за динамично управление на sys.dm_os_wait_stats и sys.dm_exec_requests (DMV)
- Стойности с повишени SOS_RW тип чакане, когато извършвате заявка към sys.dm_os_spinlock_stats DMV
Този проблем обикновено се наблюдава като конвой от заключване, който се появява, когато всяка нова DML заявка бавно изчиства обектите на синхронизацията. Поради естеството на изчакване на обектите за синхронизация, използването на процесора обикновено е ограничено.
Решение
Кумулативна информация за актуализацията
Проблемът е коригиран за първи път в следващата кумулативна актуализация на SQL Server.
Сборна актуализация 1 за SQL Server 2014 г. /bg-bg/help/2931693
Сборна актуализация 9 за SQL Server 2012 SP1 /en-us/help/2931078
За кумулативните актуализации за SQL Server
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
Информация за горещи поправки
Microsoft предлага поддържана гореща корекция. Тази гореща корекция обаче има за цел да коригира само проблема, който е описан в тази статия. Прилагайте тази гореща корекция само към системи, които срещат този конкретен проблем.
Ако горещата корекция е налична за изтегляне, има раздел "Възможно е изтегляне на гореща поправка" в горната част на тази статия от базата знания. Ако този раздел не се появява, подайте заявка до отдела за обслужване на клиенти и поддръжка на Microsoft, за да получите горещата корекция.
Забележка: Ако възникнат допълнителни проблеми или ако се налага отстраняване на неизправности, може да се наложи да създадете отделно искане за обслужване. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към тази конкретна гореща поправка. За пълен списък на телефонните номера за обслужване на клиенти и поддръжка на Microsoft или за създаване на отделна заявка за обслужване посетете следния уеб сайт на Microsoft:
/contactus/?ws=support Забележка: Формулярът "Възможно е изтегляне на гореща поправка" показва езиците, за които е налична горещата поправка. Ако не виждате вашия език, това е защото не е налична актуална поправка за този език.
Важно След като приложите тази гореща корекция, ALTER INDEX ... ONLINE заявката може да бъде прекратена без намаляване на производителността на SQL Server.
Заобиколно решение
За да заобиколите този проблем, можете да изчистите въведените метаданни, за да предотвратите заключването на конвоя и потенциалните цикли на повторно съставяне, които намаляват производителността на заявките. За да направите това, използвайте един от следните методи, за да подпомогнете изчистването на въведените метаданни:
- Рестартирайте екземпляра на SQL Server 2012 или SQL Server 2014.
- Поставете проблемната база данни в офлайн състояние и след това я пуснете отново онлайн.
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.