sys.sp_xtp_force_gc(Transact-SQL)
적용 대상: SQL Server
메모리 내 엔진이 가비지 수집에 적합한 메모리 내 데이터의 삭제된 행과 관련된 메모리를 해제합니다. 이 행은 프로세스에서 아직 릴리스되지 않았습니다.
많은 양의 메모리 내 데이터가 릴리스되고 다른 메모리 내 데이터에 메모리가 곧 필요하지 않은 경우 이 절차는 다른 용도로 메모리를 확보할 수 있습니다. 메모리가 다른 메모리 내 데이터에 곧 사용될 것으로 예상하는 경우 여기에서 해제하면 새 데이터에 대해 다시 할당해야 하므로 추가 오버헤드만 발생합니다.
메모리 최적화 TempDB 메타데이터 메모리 부족 오류에 대한 자세한 내용은 메모리 최적화 TempDB 메타데이터(HkTempDB) 메모리 부족 오류를 참조 하세요.
sys.sp_xtp_force_gc
시스템 저장 프로시저는 SQL Server 2022(16.x) CU 1 및 SQL Server 2019(15.x) CU 13에서 도입되었습니다. 이 저장 프로시저는 현재 Azure SQL Database 및 Azure SQL Managed Instance에서 지원되지 않습니다.
구문
sys.sp_xtp_force_gc
[ [ @dbname = ] 'database_name' ]
[ ; ]
인수
[ @dbname = ] 'database_name'
메모리 최적화 테이블에 사용되지 않는 메모리를 해제할 데이터베이스입니다. @dbname sysname입니다.
@dname 매개 변수를 지정하지 않으면 인스턴스의 시스템 수준 메모리 구조만 고려됩니다.
제공된 @dname 매개 변수인 경우
tempdb
메모리 최적화 TempDB 메타데이터와 관련된 메모리 구조가 영향을 받습니다.제공된 @dname 매개 변수가 사용자 데이터베이스인 경우 메모리 최적화 테이블과 관련된 메모리 구조가 영향을 받습니다.
따라서 매개 변수 없이, 사용자 데이터베이스 이름을 사용하거나@dbname =
, @dbname = N'tempdb'
실행할 sys.sp_xtp_force_gc
때 다른 결과가 표시될 수 있습니다.
반환 코드 값
0
성공을 위한 것입니다. 실패의 경우 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 메타데이터와 관련된 인사이트를 개선했습니다.
병합 작업에 사용되는 검사점 파일을 필요하지 않고 가비지 수집할 수 있는 LSN(로그 시퀀스 번호)과 표시하는 sys.sp_xtp_checkpoint_force_garbage_collection 대비합니다. sys.sp_xtp_checkpoint_force_garbage_collection
또한 연결된 LSN이 로그 잘림 지점보다 낮은 파일을 FILESTREAM 가비지 수집으로 이동합니다.
SQL Server 2022(16.x) 이전에 이 저장 프로시저를 두 번 실행합니다.
예제
SQL Server 2022(16.x)에서 시스템 수준 메모리 구조 및 메모리 최적화 TempDB 메타데이터에서 가비지 정리를 실행하려면 다음을 수행합니다.
EXEC sys.sp_xtp_force_gc N'tempdb';
GO
EXEC sys.sp_xtp_force_gc;
GO
SQL Server 2022(16.x) 이전의 시스템 수준 메모리 구조 및 메모리 최적화 TempDB 메타데이터에서 가비지 정리를 실행하려면 다음을 수행합니다.
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