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_проверкаpoint_force_garbage_collection, который помечает файлы проверка point, используемые в операции слияния с номером последовательности журналов (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