KB3088480 – КОРЕКЦИЯ: Операторът за сортиране прелива към tempdb през SQL Server 2012 или SQL Server 2014, когато изчисленият брой редове и размерът на реда са правилни

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

Симптоми

Да предположим, че изпълнявате заявка, която използва оператор за сортиране. В редки случаи операторът за сортиране може да започне да пренася в tempdb, дори ако изчисленият брой редове и средният размер на реда са точни и системата разполага с достатъчно памет. Това води до бавно изпълнение на заявката.

Решение

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

Препоръка: Инсталирайте най-новата кумулативна актуализация за SQL Server

Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Препоръчваме ви да изтеглите и инсталирате най-новите сборни актуализации за SQL Server:

      

        
Забележка: След като приложите тази гореща корекция, разрешете проследяването на флаг 7470, за да накарате SQL Server да отчита разходи за вътрешна памет за управление на данни, когато изчислява необходимата памет за сортиране. Това ще избегне разливане в ситуацията, описана в раздела "Симптоми" по-горе. Обърнете внимание, че това ще увеличи изискването за памет за заявките за сортиране и може да повлияе на наличността на памет за едновременни заявки, затова е препоръчително да използвате флага за проследяване избирателно.

Състояние

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