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) защищены уровнем размещения CLR SQL Server. Эта защита включает в себя упреждающие, переключатели SQLOS могут увеличить потребление ресурсов ЦП. Причина упреждающего переключения — защита планировщика SQLOS. Вызов реализации на основе CLR SQL Server может занять неограниченное время, не уступая планировщику SQLOS и не изменяя поведение и шаблоны параллелизма. Поэтому тип пространственных данных предназначен для переключения с приоритетом во время каждого вызова.

Примечание Пространственный тип данных основан на SQL Server CLR. Он может сталкиваться с различными уровнями потребления памяти .NET и переключения потоков.

Причина

Выполнение методов пространственного типа данных обычно занимает меньше миллисекунды и может не требовать полного планировщика ОС SQL и упреждающей защиты. Издержки, связанные с переключением в режим вытеснения и из него, могут быть намного больше, чем выполнение самого пространственного метода.

Решение

В этом исправлении введен флаг трассировки 6531, чтобы указать размещающему уровню SQLOS, что пространственный тип данных должен избегать упреждающей защиты. Это позволяет снизить потребление ресурсов ЦП и повысить общую производительность пространственных действий. Используйте этот флаг трассировки только в том случае, если отдельные пространственные вызовы метода (для строки и столбца) занимают менее ~4 мс. Более длительные вызовы без упреждающей защиты могут привести к проблемам параллелизма планировщика и сообщениям о наказаниях SQLCLR, зарегистрированным в журнале ошибок.

Эта проблема была впервые исправлена в следующем накопительном пакете обновления SQL Server.

Накопительный пакет обновления 4 для SQL Server 2012 с пакетом обновления 2 (SP2) /en-us/help/3007556

Накопительный пакет обновления 5 для SQL Server 2014 г. /en-us/help/3011055

Накопительный пакет обновления 13 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/3002044

Сведения о накопительных обновлениях для SQL Server

Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:

      

Состояние

Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».