KB4013128 – КОРЕКЦИЯ: Намалена производителност и дълго чакане за CLR_AUTO_EVENT и CMEMTHREAD, когато SQLCLR UDT се използва като параметър на съхранена процедура за SQL RPC повикване

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

Симптоми

Използвате Microsoft SQL Server 2012, 2014 или 2016 и създавате дефиниран от потребителя тип (UDT) с помощта на интеграция с SQL Server Common Language Runtime (SQL CLR).

Ако използвате UDT като параметър на съхранена процедура, параметърът се предава на сървъра чрез механизма за извикване на отдалечена процедура (RPC). Този механизъм вътрешно се опитва да зареди блок, който хоства UDT в паметта.

В тази ситуация може да изпитате понижена производителност при изпълнение на съхранената процедура. Това се дължи на неефективност, която се дължи на ненужното зареждане и разтоварване от модула SQLCLR.

Този проблем се проявява като дълго време на изчакване за типове CLR_AUTO_EVENT и CMEMTHREAD . Това е особено вярно, ако няколко едновременни потребители изпълняват една и съща съхранена процедура.

Решение

Информация за сервизен пакет за SQL Server

Тази актуализация е коригирана в следните сервизни пакети за SQL Server:

Service Pack 2 за SQL Server 2016

Service Pack 3 за SQL Server 2014

Service Pack 4 за SQL Server 2012

За сервизните пакети за SQL Server:

Сервизните пакети са кумулативни. Всеки нов сервизен пакет съдържа всички корекции, които са в предишните сервизни пакети, заедно с всички нови корекции. Нашата препоръка е да се приложи най-новият сервизен пакет и най-новата кумулативна актуализация за този сервизен пакет. Не е необходимо да инсталирате предишен сервизен пакет, преди да инсталирате най-новия сервизен пакет. Използвайте таблица 1 в следващата статия, за да намерите повече информация относно най-новия сервизен пакет и най-новата кумулативна актуализация.

Как да определите версията, изданието и нивото на актуализация на SQL Server и неговите компоненти

Състояние

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

Справки

Научете повече относно терминологията, която Microsoft използва за описване на актуализациите на софтуера.