Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
En datarad anses vara inaktuell om den har tagits bort av en transaktion som inte längre är aktiv. En inaktuell rad är berättigad till skräpinsamling. Följande är egenskaper för skräpinsamling i In-Memory OLTP:
Icke-blockerande. Skräpinsamling distribueras över tid med minimal påverkan på arbetsbelastningen.
Samarbetsvillig Användartransaktioner deltar i skräpinsamling tillsammans med huvudtråden för skräpinsamling.
Effektiv. Användartransaktioner delänkar inaktuella rader i åtkomstsökvägen (indexet) som används. Detta minskar det arbete som krävs när raden slutligen tas bort.
Responsiv. Minnestryck leder till aggressiv skräpinsamling.
Skalbar. Efter commit utför användartransaktioner en del av skräpsamlingens arbete. Ju mer transaktionsaktivitet, desto mer kopplas inaktiva rader bort från transaktionerna.
Skräpinsamling styrs av huvudtråden för skräpinsamling. Huvudtråden för skräpinsamling körs varje minut eller när antalet checkade transaktioner överskrider ett internt tröskelvärde. Skräpinsamlarens uppgift är att:
Identifiera transaktioner som har tagit bort eller uppdaterat en uppsättning rader och som har slutförts före den äldsta aktiva transaktionen.
Versioner av identitetsrader som skapats av dessa gamla transaktioner.
Gruppera gamla rader i en eller flera enheter med 16 rader vardera. Detta görs för att distribuera skräpinsamlarens arbete till mindre enheter.
Flytta dessa arbetsenheter till skräpinsamlingskön, en för varje schemaläggare. Mer information finns i följande skräpsamlar-DMV:er: sys.dm_xtp_gc_stats (Transact-SQL), sys.dm_db_xtp_gc_cycle_stats (Transact-SQL), och sys.dm_xtp_gc_queue_stats (Transact-SQL).
När en användartransaktion har bekräftats identifierar den alla köade objekt som är associerade med schemaläggaren som den kördes på och frigör minnet. Om skräpinsamlingskön i schemaläggaren är tom söker den efter någon kö som inte är tom i den aktuella NUMA-noden. Om transaktionsaktiviteten är låg och det finns minnesbelastning kan huvudtråden för skräpinsamling komma åt skräpinsamlingsrader från valfri kö. Om det inte finns någon transaktionsaktivitet efter (till exempel) borttagning av ett stort antal rader och det inte finns något minnestryck, kommer de borttagna raderna inte att vara skräp som samlas in förrän transaktionsaktiviteten återupptas eller det finns minnestryck.