Simptomi
Prema zadanim postavkama neizravne kontrolne točke uključene su za bazu podataka tempdb u sustavu Microsoft SQL Server 2016 i 2017. U uvjetima velikog radnog opterećenja može doći do pogreške "Nepopustljiv planer", a sys.dm_os_spinlock_stats DMV prikazuje pojačanu konkurenciju za spinlock za DP_LIST tip spinlocka.
Rješenje
Taj je popravak obuhvaćen sljedećim ažuriranjima i servisnim paketom:
- Kumulativno ažuriranje 1 za SQL Server 2017
- Kumulativno ažuriranje 5 za SQL Server 2016 Service Pack 1
- Kumulativno ažuriranje 8 za SQL Server 2016
Informacije o servisnom paketu za SQL Server 2016
Service Pack 2 za SQL Server 2016
O međuverzijama sustava SQL Server
Svaka nova međuverzija za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su bili u prethodnoj međuverziji. Preporučujemo da instalirate najnovija kumulativna ažuriranja za SQL Server:
Najnovije kumulativno ažuriranje za SQL Server 2017
najnovija međuverzija za SQL Server 2016
O servisnim paketima za SQL Server:
Servisni paketi kumulativni su. Svaki novi servisni paket sadrži sve popravke iz prethodnih servisnih paketa, zajedno sa svim novim popravcima. Preporučujemo da za taj servisni paket primijenite najnoviji servisni paket i najnovije kumulativno ažuriranje. Ne morate instalirati prethodni servisni paket da biste instalirali najnoviji. U tablici 1 sljedećeg članka potražite dodatne informacije o najnovijem servisnom paketu i najnovijem kumulativnom ažuriranju.
Kako odrediti verziju, izdanje i razinu ažuriranja SQL Server i njegovih komponenti
Zaobilazno rješenje
Da biste zaobišli taj problem, isključite neizravne kontrolne točke u bazi podataka tempdb pomoću jedne od sljedećih naredbi jezika za definiranje podataka (Data Definition Language, DDL).
To treba učiniti na sljedeći način:
U bazi podataka modeldb (time se mijenja i zadana vrijednost za nove baze podataka) pokrenite sljedeću naredbu:
ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTESIli izravno u bazu podataka tempdb svaki put kada se instanca pokrene pomoću agenta za SQL Server Agent pomoću sljedeće naredbe:
ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTESIli povremeno izdajte ručne kontrolne točke u bazi podataka tempdb pomoću sljedeće naredbe:
use tempdb
go checkpoint
go
Osim toga, TF 3468 se može koristiti za onemogućivanje neizravne kontrolne točke na tempdb-u.
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.
Reference
Saznajte više o terminologiji koju Microsoft upotrebljava za opisivanje softverskih ažuriranja. Dodatne informacije potražite u sljedećim člancima: