Symptom
I Microsoft SQL Server 2016 eller SQL Server 2017 för Windows kan du uppleva sämre prestanda under följande omständigheter:
-
När du kör flera samtidiga INSERTSELECT-operationer i tillfälliga tabeller.
-
När du frågar sys.dm_os_waiting_tasks. I den här situationen visar kolumnen resource_description vänta på sidor med ledigt utrymme (PFS) för flera begär Anden.
Orsak
Infoga parallellitet för INSERTSELECT åtgärder infördes i SQL Server 2016 eller SQL Server 2017 på Windows. Infogar i lokala tillfälliga tabeller (endast de som identifieras med prefixet # och inte globala tillfälliga tabeller som identifieras med # # prekorrigeringsfiler) aktive ras nu automatiskt för parallellitet utan att du behöver ange TABLOCK-tipset som inte kräver tillfälliga tabeller. Även om infoga parallellt bättre förbättrar frågeresultatet, om det finns ett stort antal samtidiga tillfälliga tabell INSERTSELECT operationer kan det vara betydelsefullt mot PFS-sidor. I vissa fall kan det orsaka en total minskning av prestanda.
Lösning
Problemet är först åtgärdat i SQL Server 2016 Service Pack 1. När du har installerat SQL Server 2016 SP1 är parallell infogningar i Infoga.. Välj till lokala tillfälliga tabeller är inaktiverat som standard, vilket minskar innehålls på PFS-sidan och förbättrar den övergripande prestandan för samtidiga arbets belastning. Om det är lämpligt att använda parallella INSERT för att skapa lokala tillfälliga tabeller bör användarna TABLOCK tipset när de infogar i den lokala tillfälliga tabellen. Om du har aktiverat spårnings flaggan 9495 som nämns i avsnittet lösning rekommenderar vi att du inaktiverar och tar bort spårnings flaggan efter att ha använt SQL Server 2016 SP1 som spårnings flagga 9495 inaktiverar parallellt infogande av TABLOCK-tipset.
Kumulativ uppdaterings information
Det här problemet har åtgärd ATS i den här kumulativa uppdateringen för SQL Server 2016:
Om kumulativa uppdateringar för SQL Server