Проблемы
При попытке одновременного выполнения нескольких больших запросов в Microsoft SQL Server 2014 некоторые запросы могут дождаться RESOURCE_SEMAPHORE_QUERY_COMPILE. Можно выполнить компиляцию только для одного запроса, который требует больше памяти, чем пороговое значение шлюза (как указано в выходных данных команды DBCC MEMORYSTATUS ) для продолжения компиляции даже в том случае, если на сервере достаточно свободной памяти.Примечание.Это ожидаемое поведение. Однако в больших системах пакетной обработки, таких как хранилище данных, это может понизить производительность при одновременном выполнении множества запросов.
Решение
Совокупные сведения об обновлениях
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Мы рекомендуем вам загрузить и установить последние накопительные обновления для SQL Server.
В этом исправлении представлен новый флаг трассировки — T 6498. Этот флаг трассировки позволяет получить доступ к большому шлюзу с более чем одной крупной компиляцией, когда достаточно свободной памяти. Оно основывается на проценте 80 целевой памяти SQL Server и позволяет одной крупной компиляцией запросов на 25 гигабайт (ГБ) памяти. Например, это позволяет двум большим компиляциям запросов на компьютере с целевой памятью 64 ГБ. После применения этого исправления необходимо включить флаг трассировки-T 6498 для включения нового поведения. Примечание.Если вы включите флаг трассировки с помощью команды DBCC TRACEON , вам не нужно перезапускать сервер, чтобы сделать этот флаг более эффективным. Но для применения новой большой конфигурации шлюза может потребоваться 10 секунд. Доступно исправление от корпорации Майкрософт. Однако это исправление предназначено для устранения только проблемы, описанной в этой статье. Применяйте это исправление только для систем, в которых наблюдаются указанные выше проблемы. Если исправление доступно для загрузки, в верхней части этой статьи базы знаний находится раздел "исправление доступно для загрузки". Если этот раздел не появился, отправьте запрос на обслуживание клиентов и службу поддержки Майкрософт, чтобы получить исправление. Примечание Если возникнут дополнительные проблемы или требуется устранение неполадок, возможно, потребуется создать отдельный запрос на обслуживание. Для дополнительных вопросов и проблем, которые не могут быть неполными для данного исправления, действуют стандартные затраты на поддержку. Чтобы получить полный список номеров телефонов службы поддержки пользователей Майкрософт, а также для создания отдельного запроса на обслуживание, посетите веб-сайт Майкрософт по следующему адресу:
http://support.microsoft.com/contactus/?ws=support Примечание. В форме "исправление доступно для загрузки" отображаются языки, для которых доступно исправление. Если язык не отображается, это значит, что исправление для этого языка недоступно.
Дополнительная информация
ПричинаSQL Server использует шлюзы компиляции для регулирования компиляций. Архитектура шлюза позволяет SQL Server хранить использование памяти для компиляции входящих запросов под контролем. Существует три шлюза: небольшие, средние и большие. Дополнительные сведения об использовании команды DBCC MEMORYSTATUS для наблюдения за использованием памяти можно найти в статье KB 907877: инструкции по использованию команды DBCC MEMORYSTATUS для наблюдения за использованием памяти в SQL Server 2005.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".