Simptomi
U sustavu Microsoft SQL Server 2016 ili SQL Server 2017 u sustavu Windows može se pojaviti smanjene performanse pod sljedećim uvjetima:
-
Kada pokrenete više istovremenih operacija INSERTSELECT u privremene tablice.
-
Kada upit sys.dm_os_waiting_tasks. U tom slučaju stupac resource_description prikazuje čekanje na stranicama slobodnog prostora (PFS) za više zahtjeva.
Uzrok
Insert parallelism for INSERTSELECT operations was introduced in SQL Server 2016 or SQL Server 2017 on Windows. INSERTs u lokalne privremene tablice (samo one koje identificira prefiks #, a ne globalne privremene tablice koje identificira ## prefiksi) sada su automatski omogućene za paralelnost, a da pritom ne morate označavati tabLOCK podsjetnik koji zahtijeva privremene tablice.
Premda insert parallelism obično poboljšava performanse upita, ako postoji znatan broj operacija INSERTSELECT u istodobne privremene tablice, sadržaj može biti značajan u odnosu na PFS stranice. U nekim slučajevima to može uzrokovati ukupno smanjenje performansi.Rješenje
Problem je prvi put riješen u SQL Server 2016 Service Pack 1. Kada primijenite SQL Server 2016 SP1, paralelni INSERTs u insert.. Mogućnost SELECT za lokalne privremene tablice po zadanom je onemogućena, što smanjuje sadržaj na stranici PFS-a i poboljšava ukupne performanse za istodobno radno opterećenje. Ako želite paralelne INSERT-ove s lokalnim privremenim tablicama, korisnici bi prilikom umetanja u lokalnu privremenu tablicu trebali koristiti podsjetnik TABLOCK. Ako ste omogućili zastavicu praćenja 9495 spomenutu u odjeljku zaobilazno rješenje, preporučujemo da onemogućite i uklonite zastavicu praćenja nakon primjene servisnog paketa SQL Server 2016 SP1 kao zastavice praćenja 9495 onemogućuje paralelno umetanje bez obzira na podsjetnik TABLOCK.
Informacije o kumulativnom ažuriranju
Taj je problem riješen u sljedećem kumulativnom ažuriranju za SQL Server 2016:
O kumulativnim ažuriranjima za SQL Server