Проблема
Предположим, что вы выполняете запрос, в котором используется оператор сортировки. В редких случаях оператор сортировки может начать перенос в tempdb, даже если предполагаемое количество строк и средний размер строки точны, а в системе достаточно памяти. Это приводит к медленному выполнению запросов.
Решение
Эта проблема была впервые исправлена в следующем накопительном пакете обновления SQL Server:
- Накопительный пакет обновления 3 для SQL Server 2014 с пакетом обновления 1 (SP1)
- Накопительный пакет обновления 10 для SQL Server 2014
- Накопительный пакет обновления 8 для SQL Server 2012 с пакетом обновления 2 (SP2)
Рекомендация. Установите последний накопительный пакет обновления для SQL Server
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Рекомендуется скачать и установить последние накопительные пакеты обновления для SQL Server:
- Последний накопительный пакет обновления для SQL Server 2014 с пакетом обновления 1 (SP1)
- Последний накопительный пакет обновления для SQL Server 2014
- Последний накопительный пакет обновления для SQL Server 2012 с пакетом обновления 2 (SP2)
Примечание. После применения этого исправления включите флаг трассировки 7470, чтобы SQL Server учитывал внутренние издержки памяти управления данными при вычислении требуемого объема памяти для сортировки. Это позволит избежать разлива жидкости в ситуации, описанной выше в разделе "Симптомы". Обратите внимание, что это увеличит требования к памяти для запросов сортировки и может повлиять на доступность памяти для параллельных запросов, поэтому рекомендуется использовать флаг трассировки выборочно.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».