KB4099472 - Förbättring av PFS-sidallokeringsalgoritmen i SQL Server 2014, 2016 och 2017

Gäller för
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) SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2017 Developer on Windows SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptom

Tänk dig följande scenario:

  • Du har ett program som använder tempdb-databasen, eller du har en specifik arbetsbelastning för tempdb-databasen.
  • Du uppgraderar till Microsoft SQL Server 2016 eller en senare version och börjar se PFS-sidkonkurrens.
  • Du följer tempdb-databasens bästa praxis och lägger till flera datafiler.

I det här scenariot fortsätter den kraftiga PFS-sidkonkurrensen och påverkar systemets prestanda.

Anteckning Om sidans karta är lätt att dela med 8088 är det en PFS-sida. Till exempel är sidan 2:3:905856 en PFS i file_id=3 i tempdb.

Lösning

Information om kumulativ uppdatering

Det här problemet åtgärdas i följande kumulativa uppdateringar för SQL Server:

Kumulativ uppdatering 7 för SQL Server 2017

Kumulativ uppdatering 1 för SQL Server 2016 SP2

Kumulativ uppdatering 9 för SQL Server 2016 SP1

Om kumulativa uppdateringar för SQL Server:

Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Kolla in de senaste kumulativa uppdateringarna för SQL Server:

Senaste kumulativa uppdateringen för SQL Server 2017

Senaste kumulativa uppdateringen för SQL Server 2016

Det här problemet åtgärdas i snabbkorrigeringen som beskrivs i följande artikel:

4099490 On-demand hotfix update package för SQL Server 2016 SP1

Den här korrigeringen förbättrar PFS-sidallokeringen genom att utföra resursallokering över flera PFS-sidor i samma datafil utöver resursallokeringen över alla tempdb-datafiler. Ju fler PFS-datasidor som finns i en datafil och ju fler datafiler det finns, desto bättre blir allokeringsfördelningen.

Anteckning Eftersom data nu är utspridda över PFS-intervallen i tempdb-databasfilerna, kommer åtgärder som databaskrympning att bli mer resurskrävande. Det rekommenderas dock generellt inte att krympa tempdb under det normala driftförloppet.

Service Pack-information för SQL Server:

Den här uppdateringen åtgärdas i följande Service Pack för SQL Server:

Service Pack 3 för SQL Server 2014

Om Service Pack för SQL Server:

Service Pack är kumulativa. Varje ny service pack-version innehåller alla korrigeringar som ingår i tidigare service pack-versioner samt eventuella nya korrigeringar. Vår rekommendation är att använda den senaste Service Pack-versionen och den senaste kumulativa uppdateringen för den Service Pack-versionen. Du behöver inte installera en tidigare Service Pack-version innan du installerar den senaste Service Pack-versionen. I tabell 1 i följande artikel hittar du mer information om den senaste Service Pack-versionen och den senaste kumulativa uppdateringen.

Så här fastställer du version, utgåva och uppdateringsnivå för SQL Server och dess komponenter

Status

Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".

Referenser

Rekommendationer för att minska allokeringskonkurration i SQL Server tempdb-databas