sys.sp_xtp_force_gc (Transact-SQL)
Область применения: SQL Server
Приводит к тому, что подсистема памяти освобождает память, связанную с удаленными строками данных в памяти, которые имеют право на сборку мусора, которая еще не была выпущена процессом.
В случаях, когда был выпущен большой объем данных в памяти и где память скоро не требуется для других данных в памяти, эта процедура может освободить память для других использования. Если вы ожидаете, что память, используемая в ближайшее время для других данных в памяти, освободив ее здесь, приведет только к дополнительным издержкам, так как потребуется перераспределить для новых данных.
Дополнительные сведения об ошибках метаданных TempDB, оптимизированных для памяти, см . в статье об ошибках, оптимизированных для памяти, из-за ошибок памяти, оптимизированных для памяти.
Системная sys.sp_xtp_force_gc
хранимая процедура появилась в SQL Server 2022 (16.x) CU 1 и SQL Server 2019 (15.x) CU 13. Эта хранимая процедура в настоящее время не поддерживается в База данных SQL Azure и Управляемый экземпляр SQL Azure.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.sp_xtp_force_gc
[ [ @dbname = ] 'database_name' ]
[ ; ]
Аргументы
[ @dbname = ] 'database_name'
База данных для выпуска неиспользуемой памяти для оптимизированных для памяти таблиц. @dbname — sysname.
Если параметр @dname не указан, учитываются только структуры памяти уровня системы в экземпляре.
Если указан
tempdb
параметр @dname, влияют структуры памяти, связанные с метаданными TempDB, оптимизированными для памяти.Если указан параметр @dname является пользовательской базой данных, влияют структуры памяти, связанные с памятью, оптимизированные для памяти таблицы.
Таким образом, при выполнении sys.sp_xtp_force_gc
могут отображаться различные результаты: без параметра, с @dbname = N'tempdb'
именем пользовательской базы данных или с @dbname =
именем пользовательской базы данных.
Значения кода возврата
0
для успешного выполнения. Ненулевое значение — ошибка.
Разрешения
Требуется членство в предопределенной роли базы данных db_owner.
Замечания
Сборка мусора, оптимизированная для памяти, выполняется обычно и автоматически в ответ на давление памяти. Вы можете вручную активировать сборку мусора с sys.sp_xtp_force_gc
помощью . Вы можете наблюдать снижение очистки памяти в sys.dm_xtp_system_memory_consumers. В SQL Server 2022 (16.x) динамическое sys.dm_xtp_system_memory_consumers
административное представление улучшило аналитические сведения, относящиеся к метаданным TempDB, оптимизированным для памяти.
Контрастирует с sys.sp_xtp_checkpoint_force_garbage_collection, который помечает файлы контрольных точек, используемые в операции слияния, с номером последовательности журнала (LSN), после которого они не нужны и могут собирать мусор. Кроме того, sys.sp_xtp_checkpoint_force_garbage_collection
перемещает файлы, связанные с LSN, ниже точки усечения журнала в сборку мусора FILESTREAM.
До SQL Server 2022 (16.x) выполните эту хранимую процедуру дважды.
Примеры
Выполнение очистки мусора в структурах памяти на уровне системы и метаданных TempDB, оптимизированных для памяти, в SQL Server 2022 (16.x):
EXEC sys.sp_xtp_force_gc N'tempdb';
GO
EXEC sys.sp_xtp_force_gc;
GO
Выполнение очистки мусора в структурах памяти на уровне системы и метаданных TempDB, оптимизированных для памяти до 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
Связанный контент
- Системные хранимые процедуры (Transact-SQL)
- sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)
- sys.dm_xtp_system_memory_consumers (Transact-SQL)
- Обзор и сценарии использования OLTP в памяти
- Метаданные TempDB, оптимизированные для памяти
- Оптимизированные для памяти метаданные tempdb (HkTempDB) из памяти