Симптоми
Имайте предвид сценария, описан по-долу:
- Имате приложение, което използва в голяма степен базата данни tempdb, или имате конкретно работно натоварване на база данни tempdb.
- Надстройвате до Microsoft SQL Server 2016 или по-нова версия и започвате да виждате конкуренцията за страници на PFS.
- Следвате най-добрите практики за бази данни на tempdb и добавяте няколко файла с данни.
В този случай тежката конкуренция за страници за PFS продължава и се отразява на производителността на системата.
Забележка Ако картата на страницата лесно се разделя на 8088, това е PFS страница. Например страница 2:3:905856 е PFS в file_id=3 в tempdb.
Решение
Информацията за кумулативната актуализация
Този проблем е решен в следните кумулативни актуализации за SQL Server:
Сборна актуализация 7 за SQL Server 2017
Сборна актуализация 1 за SQL Server 2016 SP2
Сборна актуализация 9 за SQL Server 2016 SP1
За кумулативните актуализации за SQL Server:
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
Последна сборна актуализация за SQL Server 2017
Последна сборна актуализация за SQL Server 2016
Този проблем е коригиран в актуалната поправка, която е описана в следната статия:
Пакет за актуализация на гореща поправка 4099490 при поискване за SQL Server 2016 SP1
Тази корекция подобрява разпределението на страници в PFS чрез извършване на кръгово разпределение на няколко PFS страници в един и същ файл с данни, в допълнение към разпределението "циклично" за всички файлове с данни на TEMPDB. Следователно, колкото повече страници с данни за PFS се съдържат във файл с данни и колкото повече файлове с данни има, толкова по-добро е разпределението на разпределението.
Забележка Тъй като данните сега са разпръснати между интервалите на PFS във файловете на базата данни tempdb, операции като свиване на базата данни ще станат по-ресурсоемки. Въпреки това, обикновено не се препоръчва свиването на tempdb по време на типичния ход на работа.
Информация за сервизни пакети за SQL Server:
Тази актуализация е коригирана в следния сервизен пакет за SQL Server:
Service Pack 3 за SQL Server 2014
За сервизните пакети за SQL Server:
Сервизните пакети са кумулативни. Всеки нов сервизен пакет съдържа всички корекции, които са в предишните сервизни пакети, заедно с всички нови корекции. Нашата препоръка е да се приложи най-новият сервизен пакет и най-новата кумулативна актуализация за този сервизен пакет. Не е необходимо да инсталирате предишен сервизен пакет, преди да инсталирате най-новия сервизен пакет. Използвайте таблица 1 в следващата статия, за да намерите повече информация относно най-новия сервизен пакет и най-новата кумулативна актуализация.
Как да определите версията, изданието и нивото на актуализация на SQL Server и неговите компоненти
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Справки
Препоръки за намаляване на състезанията за разпределение в базата данни tempdb на SQL Server