sys.sp_xtp_force_gc (Transact-SQL)
S'applique à : SQL Server
Fait en sorte que le moteur en mémoire libère la mémoire liée aux lignes supprimées de données en mémoire éligibles au garbage collection, qui n’ont pas encore été libérées par le processus.
Dans les cas où un grand volume de données en mémoire a été libéré et où la mémoire n’est pas bientôt nécessaire pour d’autres données en mémoire, cette procédure peut libérer de la mémoire pour d’autres utilisations. Si vous prévoyez que la mémoire est bientôt utilisée pour d’autres données en mémoire, la libération de celle-ci entraîne uniquement une surcharge supplémentaire, car elle doit être réaffectée pour les nouvelles données.
Pour plus d’informations sur les métadonnées TempDB optimisées en mémoire en dehors des erreurs de mémoire, consultez les métadonnées TempDB optimisées en mémoire (HkTempDB) en dehors de la mémoire.
La sys.sp_xtp_force_gc
procédure stockée système a été introduite dans SQL Server 2022 (16.x) CU 1 et SQL Server 2019 (15.x) CU 13. Cette procédure stockée n’est actuellement pas prise en charge sur Azure SQL Database et Azure SQL Managed Instance.
Conventions de la syntaxe Transact-SQL
Syntaxe
sys.sp_xtp_force_gc
[ [ @dbname = ] 'database_name' ]
[ ; ]
Arguments
[ @dbname = ] 'database_name'
Base de données pour libérer de la mémoire inutilisée pour les tables mémoire optimisées. @dbname est sysname.
Lorsque le paramètre @dname n’est pas spécifié, seules les structures de mémoire au niveau du système dans l’instance sont prises en compte.
Lorsque le paramètre @dname fourni est
tempdb
, les structures de mémoire liées aux métadonnées TempDB optimisées en mémoire sont affectées.Lorsque le paramètre @dname fourni est une base de données utilisateur, les structures de mémoire associées aux tables optimisées en mémoire sont affectées.
Par conséquent, vous pouvez vous attendre à voir différents résultats lors de l’exécution sys.sp_xtp_force_gc
: sans paramètre, avec @dbname = N'tempdb'
ou avec @dbname =
un nom de base de données utilisateur.
Valeurs des codes de retour
0
pour réussir. Une valeur différente de zéro pour un échec.
autorisations
Nécessite l'appartenance au rôle de base de données fixe db_owner.
Notes
Le garbage collection optimisé en mémoire se produit normalement et automatiquement en réponse à la sollicitation de la mémoire. Vous pouvez déclencher manuellement le garbage collection avec sys.sp_xtp_force_gc
. Vous pouvez observer la réduction du nettoyage de la mémoire dans sys.dm_xtp_system_memory_consumers. Dans SQL Server 2022 (16.x), la sys.dm_xtp_system_memory_consumers
vue de gestion dynamique a amélioré les insights spécifiques aux métadonnées TempDB optimisées en mémoire.
Contrairement à sys.sp_xtp_checkpoint_force_garbage_collection, qui marque les fichiers de point de contrôle utilisés dans l’opération de fusion avec le numéro de séquence de journal (LSN) après lequel ils ne sont pas nécessaires et peuvent être récupérés par le garbage collect. sys.sp_xtp_checkpoint_force_garbage_collection
Déplace également les fichiers dont le LSN associé est inférieur au point de troncation du journal vers le garbage collection FILESTREAM.
Avant SQL Server 2022 (16.x), exécutez cette procédure stockée deux fois.
Exemples
Pour exécuter le nettoyage de la mémoire sur les structures de mémoire au niveau du système et les métadonnées TempDB optimisées en mémoire dans SQL Server 2022 (16.x) :
EXEC sys.sp_xtp_force_gc N'tempdb';
GO
EXEC sys.sp_xtp_force_gc;
GO
Pour exécuter le nettoyage de la mémoire sur les structures de mémoire au niveau du système et les métadonnées TempDB optimisées en mémoire avant 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
Contenu connexe
- Procédures stockées système (Transact-SQL)
- sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)
- sys.dm_xtp_system_memory_consumers (Transact-SQL)
- Vue d’ensemble et scénarios d’utilisation de l’OLTP en mémoire
- Métadonnées TempDB optimisées en mémoire
- Métadonnées tempdb optimisées en mémoire (HkTempDB) en dehors des erreurs de mémoire