Kommentar
Å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
Gör att minnesmotorn släpper minne relaterat till raderade rader av minnesdata som är berättigade till skräpsamling, vilka ännu inte har släppts av processen.
I fall där en stor mängd minnesdata har släppts, och där minnet inte snart behövs för annan minnesdata, kan denna procedur frigöra minne för andra användningsområden. Om du förväntar dig att minnet snart kommer att användas för annan data i minnet, skulle frigörandet här bara orsaka extra överhead, eftersom det måste allokeras om för den nya datan.
För mer information om minnesoptimerade TempDB-metadata ur minnesfel, se minnesoptimerade TempDB-metadata (HkTempDB) ut ur minnesfel.
Systemlagrad sys.sp_xtp_force_gc prozedur introducerades i SQL Server 2022 (16.x) CU 1 och SQL Server 2019 (15.x) CU 13. Denna lagrade procedur stöds för närvarande inte på Azure SQL Database och Azure SQL Managed Instance.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_xtp_force_gc [ [ @database_name = ] N'database_name' ]
[ ; ]
Arguments
[ @database_name = ] N'database_name'
Databasen för att frigöra oanvänt minne för minnesoptimerade tabeller. @database_name är sysname.
När @database_name-parametern inte specificeras, beaktas endast minnesstrukturer på systemnivå i instansen.
När den @database_name parametern som anges är
tempdb, påverkas minnesstrukturerna relaterade till minnesoptimerad TempDB-metadata .När den @database_name parameter som tillhandahålls är en användardatabas påverkas de minnesstrukturer relaterade minnesoptimerade tabeller.
Därför kan du förvänta dig att se olika resultat vid exekvering: sys.sp_xtp_force_gcutan parameter, med @database_name = N'tempdb', eller med @database_name = ett användardatabasnamn.
Returnera kodvärden
0 för framgång. Icke-noll för misslyckande.
Permissions
Kräver medlemskap i den db_owner fasta databasrollen.
Remarks
Minnesoptimerad skräpsamling sker normalt och automatiskt som svar på minnestryck. Du kan manuellt trigga garbage collection med sys.sp_xtp_force_gc. Du kan se minskningen av minnesrensning i sys.dm_xtp_system_memory_consumers. I SQL Server 2022 (16.x) har den dynamiska sys.dm_xtp_system_memory_consumers hanteringsvyn förbättrat insikter specifika för minnesoptimerad TempDB-metadata.
Jämför med sys.sp_xtp_checkpoint_force_garbage_collection, som markerar checkpointfiler som används i sammanslagningsoperationen med logsekvensnumret (LSN), varefter de inte behövs och kan samlas in som skräp. Flyttar sys.sp_xtp_checkpoint_force_garbage_collection också filer vars associerade LSN är lägre än loggtrunkeringspunkten till FILESTREAM garbage collection.
Före SQL Server 2022 (16.x) kör du denna lagrade produr två gånger.
Examples
För att utföra skräprensning på systemnivåminnesstrukturer och minnesoptimerad TempDB-metadata i SQL Server 2022 (16.x):
EXECUTE sys.sp_xtp_force_gc N'tempdb';
GO
EXECUTE sys.sp_xtp_force_gc;
GO
För att utföra skräprensning på systemnivå-minnesstrukturer och minnesoptimerad TempDB-metadata före SQL Server 2022 (16.x):
EXECUTE sys.sp_xtp_force_gc N'tempdb';
GO
EXECUTE sys.sp_xtp_force_gc N'tempdb';
GO
EXECUTE sys.sp_xtp_force_gc;
GO
EXECUTE sys.sp_xtp_force_gc;
GO