KB3005011 . Непредвиденный рост файлов данных tempdb при использовании компонента Service Broker SQL Server

Применяется к
SQL Server 2016

Проблема

Вы заметите непредвиденный рост файлов данных tempdb, если в приложениях, использующих Microsoft SQL Server Service Broker, настроен шаблон сообщений из одного сообщения на беседу. Этот шаблон напоминает шаблон "загорайся и забудь", который обычно используется в приложениях аудита.

При запросе динамического административного представления (DMV) sys.dm_db_task_space_usage во время возникновения этой проблемы вы можете увидеть, что значение "internal_objects_dealloc_page_count" не увеличивается с той же скоростью, что и "internal_objects_alloc_page_count" для идентификаторов сеансов, выполняющих внутренние задачи компонента Service Broker.

Кроме того, пространство базы данных tempdb не освобождается даже после закрытия и очистки всех ожидающих бесед.

Причина

Рост файлов данных вызван главным образом постоянными вставками и обновлениями в таблице sys.sysdesend. В этой ситуации файлы данных tempdb продолжают увеличиваться по мере использования компонента Service Broker.

Решение

Эта проблема устранена в Microsoft SQL Server 2016.

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

Накопительный пакет обновления 5 для SQL Server 2012 с пакетом обновления 3 (SP3)
            
             Накопительный пакет обновления 10 для SQL Server 2014 с пакетом обновления 1 (SP1) 

Накопительный пакет обновления 3 для SQL Server 2014 с пакетом обновления 2 (SP2)

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

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

Последнее накопительное обновление для SQL Server 2012 с пакетом обновления 3 (SP3)

Последнее накопительное обновление для SQL Server 2014 с пакетом обновления 1 (SP1)/SP2

      

Дополнительные сведения

Чтобы освободить невыпущенное пространство из базы данных tempdb, перезапустите службу SQL Server.

Чтобы избежать этой проблемы, следуйте общим рекомендациям в разделе "Методы производительности и масштабируемости" следующего раздела TechNet:

Компонент Service Broker: методы производительности и масштабируемости

Состояние

Корпорация Майкрософт подтверждает, что это известная проблема в текущей структуре компонента Service Broker.