Condividi tramite


sys.sp_xtp_force_gc (Transact-SQL)

Si applica a: SQL Server

Fa sì che il motore in memoria rilasci la memoria correlata alle righe eliminate di dati in memoria idonei per Garbage Collection, che non sono ancora state rilasciate dal processo.

Nei casi in cui è stato rilasciato un volume elevato di dati in memoria e in cui la memoria non è presto necessaria per altri dati in memoria, questa procedura può liberare memoria per altri usi. Se si prevede che la memoria usata presto per altri dati in memoria, liberarla in questo caso provocherebbe solo un sovraccarico aggiuntivo, perché sarebbe necessario riallocare per i nuovi dati.

Per altre informazioni sugli errori di memoria dei metadati TempDB ottimizzati per la memoria, vedere Errori di memoria insufficiente nei metadati tempDB ottimizzati per la memoria (HkTempDB).

La sys.sp_xtp_force_gc stored procedure di sistema è stata introdotta in SQL Server 2022 (16.x) CU 1 e SQL Server 2019 (15.x) CU 13. Questa stored procedure non è attualmente supportata in database SQL di Azure e Istanza gestita di SQL di Azure.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @dbname = ] 'database_name'

Database per rilasciare memoria inutilizzata per le tabelle ottimizzate per la memoria. @dbname è sysname.

  • Quando il parametro @dname non viene specificato, vengono considerate solo le strutture di memoria a livello di sistema nell'istanza.

  • Quando il parametro @dname specificato è tempdb, le strutture di memoria correlate ai metadati TempDB ottimizzati per la memoria sono interessate.

  • Quando il parametro @dname fornito è un database utente, le strutture di memoria correlate alle tabelle ottimizzate per la memoria sono interessate.

Pertanto, è possibile che vengano visualizzati risultati diversi durante l'esecuzione sys.sp_xtp_force_gcdi : senza un parametro, con o con @dbname = N'tempdb'@dbname = un nome di database utente.

Valori del codice restituito

0 per il successo. Diverso da zero per l'esito negativo.

Autorizzazioni

Richiede l'adesione al ruolo predefinito del database db_owner.

Osservazioni:

La Garbage Collection ottimizzata per la memoria avviene normalmente e automaticamente in risposta a una pressione di memoria. È possibile attivare manualmente garbage collection con sys.sp_xtp_force_gc. È possibile osservare la riduzione della pulizia della memoria in sys.dm_xtp_system_memory_consumers. In SQL Server 2022 (16.x), la sys.dm_xtp_system_memory_consumers visualizzazione a gestione dinamica ha migliorato informazioni dettagliate specifiche per i metadati tempDB ottimizzati per la memoria.

A differenza di sys.sp_xtp_checkpoint_force_garbage_collection, che contrassegna i file di checkpoint usati nell'operazione di unione con il numero di sequenza del log (LSN) dopo il quale non sono necessari e possono essere sottoposto a Garbage Collection. sys.sp_xtp_checkpoint_force_garbage_collection Sposta inoltre i file il cui LSN associato è inferiore al punto di troncamento del log in Garbage Collection FILESTREAM.

Prima di SQL Server 2022 (16.x), eseguire questa stored procedure due volte.

Esempi

Per eseguire la pulizia della procedura di garbage nelle strutture di memoria a livello di sistema e nei metadati TempDB ottimizzati per la memoria in SQL Server 2022 (16.x):

EXEC sys.sp_xtp_force_gc N'tempdb';
GO

EXEC sys.sp_xtp_force_gc;
GO

Per eseguire la pulizia della garbage nelle strutture di memoria a livello di sistema e nei metadati TempDB ottimizzati per la memoria prima di SQL Server 2022 (16.x):

EXEC sys.sp_xtp_force_gc N'tempdb';
GO

EXEC sys.sp_xtp_force_gc N'tempdb';
GO

EXEC sys.sp_xtp_force_gc;
GO

EXEC sys.sp_xtp_force_gc;
GO