KB3005300 – КОРЕКЦИЯ: Висока консумация на процесора, когато използвате тип пространствени данни и свързаните с него методи в SQL Server 2012 или SQL Server 2014

Отнася се за
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Симптоми

Когато използвате типа пространствени данни и свързаните с него методи в Microsoft SQL Server 2012 или Microsoft SQL Sever 2014, квантовите цели на планировчика на операционната система на SQL Server (SQLOS) са защитени от слоя на хостинг на SQL Server CLR. Тази защита включва изпреварване, SQLOS комутаторите могат да увеличат консумацията на процесора. Причината за изпреварващото превключване е да се защити планировчикът на SQLOS. Повикване на базирана на CLR реализация на SQL Server може да отнеме неопределено време, без да отстъпва пред планировчика на SQLOS или да променя поведението и моделите на паралелно протичащи процеси. Следователно, пространственият тип данни е проектиран да превключва изпреварващо по време на всяко извикване.

Забележка: Типът пространствени данни се базира на SQL Server CLR и може да се натъкне на различни нива на използване на паметта в .NET и поведение при превключване на нишки.

Причина

Методите за пространствени типове данни обикновено са подмилисекунди и може да не изискват пълния планировчик на SQL OS и изпреварваща защита. Режийните разходи за превключване към и от изпреварващ режим могат да бъдат много по-големи от изпълнението на самия пространствен метод.

Решение

Тази корекция въвежда флаг за проследяване 6531, за да покаже на SQLOS хостинг слоя, че типът пространствени данни трябва да избягва изпреварващи защити. Това може да намали потреблението на процесора и да подобри цялостната производителност за пространствени дейности. Използвайте този флаг за проследяване само ако индивидуалните пространствени извиквания на методи (на ред и колона) отнемат по-малко от ~4 мс. По-дълги извиквания без изпреварваща защита могат да доведат до проблеми със съгласуваните процеси на планирането и съобщения за наказание на SQLCLR, регистрирани в регистрационния файл за грешки.

Проблемът е коригиран за първи път в следващата кумулативна актуализация на SQL Server.

Сборна актуализация 4 за SQL Server 2012 SP2 /en-us/help/3007556

Сборна актуализация 5 за SQL Server 2014 г. /en-us/help/3011055

Сборна актуализация 13 за SQL Server 2012 SP1 /bg-bg/help/3002044

За кумулативните актуализации за SQL Server

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

      

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.