sys.sp_xtp_force_gc (Transact-SQL)

Van toepassing op:SQL Server

Zorgt ervoor dat de in-memory engine geheugen vrijgeeft dat gerelateerd is aan verwijderde rijen in-memory data die in aanmerking komen voor garbage collection, maar die nog niet door het proces zijn vrijgegeven.

In gevallen waarin een groot volume in-memory data is vrijgegeven en het geheugen niet snel nodig is voor andere in-memory data, kan deze procedure geheugen vrijmaken voor andere toepassingen. Als je verwacht dat het geheugen binnenkort wordt gebruikt voor andere in-memory data, zou het vrijgeven hier alleen maar extra overhead veroorzaken, omdat het voor de nieuwe data opnieuw toegewezen moet worden.

Voor meer informatie over geheugengeoptimaliseerde TempDB-metadata uit geheugenfouten, zie geheugengeoptimaliseerde TempDB-metadata (HkTempDB) uit geheugenfouten.

De sys.sp_xtp_force_gc systeemopgeslagen procedure werd geïntroduceerd in SQL Server 2022 (16.x) CU 1 en SQL Server 2019 (15.x) CU 13. Deze stored procedure wordt momenteel niet ondersteund op Azure SQL Database en Azure SQL Managed Instance.

Transact-SQL syntaxis-conventies

Syntax

sys.sp_xtp_force_gc [ [ @database_name = ] N'database_name' ]
[ ; ]

Arguments

[ @database_name = ] N'database_name'

De database om ongebruikt geheugen vrij te geven voor geheugen-geoptimaliseerde tabellen. @database_name is sysname.

  • Wanneer de @database_name parameter niet is gespecificeerd, worden alleen systeemniveau-geheugenstructuren in de instantie beschouwd.

  • Wanneer de @database_name parameter is tempdb, worden de geheugenstructuren die verband houden met geheugengeoptimaliseerde TempDB-metadata beïnvloed.

  • Wanneer de @database_name parameter een gebruikersdatabase is, worden de geheugenstructuren die met geheugen-geoptimaliseerde tabellen verband houden beïnvloed.

Daarom kun je verschillende resultaten verwachten bij het uitvoeren sys.sp_xtp_force_gcvan : zonder parameter, met @database_name = N'tempdb', of met @database_name = een gebruikersdatabasenaam.

Codewaarden retourneren

0 voor succes. Niet-nul voor falen.

Permissions

Vereist lidmaatschap van de db_owner standaard databaserol.

Remarks

Geheugengeoptimaliseerde garbage collection vindt normaal en automatisch plaats als reactie op geheugendruk. Je kunt garbage collection handmatig activeren met sys.sp_xtp_force_gc. Je kunt de afname in geheugenopruiming in sys.dm_xtp_system_memory_consumers zien. In SQL Server 2022 (16.x) heeft de sys.dm_xtp_system_memory_consumers dynamische beheerweergave verbeterde inzichten die specifiek zijn voor geheugengeoptimaliseerde TempDB-metadata.

Vergelijk met sys.sp_xtp_checkpoint_force_garbage_collection, dat checkpointbestanden die bij de merge-operatie worden gebruikt markeert met het log-sequentienummer (LSN), waarna ze niet meer nodig zijn en garbage collected kunnen worden verwerkt. Verplaatst sys.sp_xtp_checkpoint_force_garbage_collection ook de bestanden waarvan het bijbehorende LSN lager is dan het log-afkappunt naar de FILESTREAM garbage collection.

Voor SQL Server 2022 (16.x) voert u deze opgeslagen procedure twee keer uit.

Examples

Om garbage cleanup uit te voeren op systeemniveau geheugenstructuren en geheugengeoptimaliseerde TempDB-metadata in SQL Server 2022 (16.x):

EXECUTE sys.sp_xtp_force_gc N'tempdb';
GO

EXECUTE sys.sp_xtp_force_gc;
GO

Om garbage cleanup uit te voeren op systeemniveau geheugenstructuren en geheugengeoptimaliseerde TempDB-metadata vóór 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