sys.sp_xtp_force_gc (Transact-SQL)
Se aplica a: SQL Server
Hace que el motor en memoria libere memoria relacionada con las filas eliminadas de datos en memoria que son aptas para la recolección de elementos no utilizados, que aún no ha sido liberado por el proceso.
En los casos en los que se ha liberado un gran volumen de datos en memoria y en los que la memoria no se necesita pronto para otros datos en memoria, este procedimiento puede liberar memoria para otros usos. Si prevé que la memoria que se usa pronto para otros datos en memoria, liberarla aquí solo provocaría sobrecarga adicional, ya que tendría que reasignarse para los nuevos datos.
Para obtener más información sobre los metadatos tempDB optimizados para memoria fuera de los errores de memoria, consulte Metadatos de tempdb optimizados para memoria (HkTempDB) de errores de memoria.
El sys.sp_xtp_force_gc
procedimiento almacenado del sistema se introdujo en SQL Server 2022 (16.x) CU 1 y SQL Server 2019 (15.x) CU 13. Este procedimiento almacenado no se admite actualmente en Azure SQL Database y Azure SQL Instancia administrada.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sys.sp_xtp_force_gc
[ [ @dbname = ] 'database_name' ]
[ ; ]
Argumentos
[ @dbname = ] 'database_name'
Base de datos para liberar memoria no utilizada para tablas optimizadas para memoria. @dbname es sysname.
Cuando no se especifica el parámetro @dname , solo se tienen en cuenta las estructuras de memoria de nivel del sistema de la instancia.
Cuando el parámetro @dname proporcionado es
tempdb
, las estructuras de memoria relacionadas con los metadatos tempdb optimizados para memoria se ven afectadas .Cuando el parámetro @dname proporcionado es una base de datos de usuario, las estructuras de memoria relacionadas con las tablas optimizadas para memoria se ven afectadas.
Por lo tanto, es posible que espere ver resultados diferentes al ejecutar sys.sp_xtp_force_gc
: sin un parámetro, con @dbname = N'tempdb'
o con @dbname =
un nombre de base de datos de usuario.
Valores de código de retorno
0
para éxito. Distinto de cero para error.
Permisos
Requiere pertenencia al rol fijo de base de datos db_owner.
Comentarios
La recolección de elementos no utilizados optimizada para memoria se produce normalmente y automáticamente en respuesta a la presión de memoria. Puede desencadenar manualmente la recolección de elementos no utilizados con sys.sp_xtp_force_gc
. Puede observar la reducción de la limpieza de memoria en sys.dm_xtp_system_memory_consumers. En SQL Server 2022 (16.x), la sys.dm_xtp_system_memory_consumers
vista de administración dinámica ha mejorado la información específica de los metadatos tempdb optimizados para memoria.
Contrasta con sys.sp_xtp_checkpoint_force_garbage_collection, que marca los archivos de punto de control usados en la operación de combinación con el número de secuencia de registro (LSN) después del cual no son necesarios y se pueden recopilar elementos no utilizados. Además, sys.sp_xtp_checkpoint_force_garbage_collection
mueve los archivos cuyo LSN asociado es menor que el punto de truncamiento del registro a la recolección de elementos no utilizados FILESTREAM.
Antes de SQL Server 2022 (16.x), ejecute este procedimiento almacenado dos veces.
Ejemplos
Para ejecutar la limpieza de elementos no utilizados en estructuras de memoria de nivel de sistema y metadatos tempDB optimizados para memoria en SQL Server 2022 (16.x):
EXEC sys.sp_xtp_force_gc N'tempdb';
GO
EXEC sys.sp_xtp_force_gc;
GO
Para ejecutar la limpieza de elementos no utilizados en estructuras de memoria de nivel del sistema y metadatos tempDB optimizados para memoria antes de 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
Contenido relacionado
- Procedimientos almacenados del sistema (Transact-SQL)
- sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)
- sys.dm_xtp_system_memory_consumers (Transact-SQL)
- In-Memory OLTP (optimización In-Memory)
- Metadatos de tempdb optimizados para memoria
- Metadatos tempdb optimizados para memoria (HkTempDB) de errores de memoria