KB4131193 – Проблеми с производителността възникват под формата на PAGELATCH_EX и PAGELATCH_SH чакания в TempDB, когато използвате SQL Server 2016

Отнася се за
SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Симптоми

Когато използвате Microsoft SQL Server 2016, се увеличава PAGELATCH_EX и PAGELATCH_SH време на изчакване на страниците на базата данни, които принадлежат на системните таблици sys.sysobjvalues и sys.sysseobjvalues в TempDB.

Заобиколно решение

За да заобиколите този проблем, прегледайте своята кандидатура и приложете следните методи, където е приложимо. Също така се уверете, че използвате тези методи като най-добри практики в бъдещата разработка на Transact-SQL:

  • Премахнете командите DROP TABLE за всички временни таблици, които няма да се използват повторно в рамките на същото изпълнение на съхранената процедура. SQL Server ще премахне временните таблици, когато сесията, която е създала временните таблици, приключи.
  • Избягвайте използването на командата СЪКРАТИ ТАБЛИЦА срещу временни таблици.
  • Избягвайте да променяте временните таблици, след като са били създадени.
  • Ако индекси са създадени за временната таблица, помислете дали да не ги преместите във вградени команди за създаване на индекси в командата CREATE TABLE.

Решение

Тази корекция е включена в следните актуализации:

Сборна актуализация 1 за SQL Server 2016 Service Pack 2

Сборна актуализация 9 за SQL Server 2016 Service Pack 1

За компилациите на SQL Server

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

Най-новата компилация за SQL Server 2016