KB4497928 – RJEŠENJE: neizravne kontrolne točke u bazi podataka tempdb uzrokuju pogrešku "Non-yielding scheduler" (Nepopustljivi planer) u SQL Server 2016 i 2017

Primjenjuje se na
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)

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.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Rješenje

Taj je problem riješen u sljedećim kumulativnim ažuriranjima za SQL Server:

O kumulativnim ažuriranjima za SQL Server:

Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnim kumulativnim ažuriranjem. Pogledajte najnovija kumulativna ažuriranja za SQL Server:

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 MINUTES

  • Ili 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 MINUTES

  • Ili 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.

Reference

Saznajte više o terminologiji koju Microsoft upotrebljava za opisivanje softverskih ažuriranja. Dodatne informacije potražite u sljedećim člancima: