sp_clean_db_file_free_space(Transact-SQL)
적용 대상:SQL Server
SQL Server의 데이터 수정 루틴으로 인해 데이터베이스 페이지에 남아 있는 잔여 정보를 제거합니다. sp_clean_db_file_free_space 데이터베이스의 한 파일에서만 모든 페이지를 정리합니다.
구문
sp_clean_db_file_free_space
[ @dbname = ] 'database_name'
, [ @fileid = ] 'file_number'
[ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]
인수
@dbname = 'database_name'
정리할 데이터베이스의 이름입니다. dbname 은 sysname 이며 NULL일 수 없습니다.
@fileid = 'file_number'
정리할 데이터 파일 ID입니다. file_number int이며 NULL일 수 없습니다.
@cleaning_delay = 'delay_in_seconds'
페이지 정리를 멈추고 대기할 시간 간격을 지정합니다. 이렇게 하면 I/O 시스템에 미치는 영향을 줄일 수 있습니다. delay_in_seconds 기본값이 0인 int입니다.
반환 코드 값
0(성공) 또는 1(실패)
설명
행이 이동하게 하는 테이블 또는 업데이트 작업에서 작업을 삭제하면 행에 대한 참조를 제거하여 페이지의 공간을 즉시 확보할 수 있습니다. 그러나 상황에 따라서는 행이 데이터 페이지에 물리적으로 남아 있어 삭제해야 할 레코드가 될 수 있습니다. 고스트 레코드는 백그라운드 프로세스에 의해 주기적으로 제거됩니다. 이 잔여 데이터는 쿼리에 대한 응답으로 데이터베이스 엔진에서 반환되지 않습니다. 그러나 데이터 또는 백업 파일의 물리적 보안이 위험한 환경에서는 이러한 고스트 레코드를 정리하는 데 사용할 sp_clean_db_file_free_space
수 있습니다. 모든 데이터베이스 파일에 대해 이 작업을 한 번에 수행하려면 sp_clean_db_free_space(Transact-SQL)를 사용합니다.
sp_clean_db_file_free_space 실행하는 데 필요한 시간은 파일의 크기, 사용 가능한 여유 공간 및 디스크의 용량에 따라 달라집니다. 실행은 sp_clean_db_file_free_space
I/O 작업에 큰 영향을 줄 수 있으므로 일반적인 작업 시간 외에 이 절차를 실행하는 것이 좋습니다.
실행 sp_clean_db_file_free_space
하기 전에 전체 데이터베이스 백업을 만드는 것이 좋습니다.
관련 sp_clean_db_free_space 저장 프로시저는 데이터베이스의 모든 파일을 정리합니다.
사용 권한
데이터베이스 역할의 db_owner
멤버 자격이 필요합니다.
예
다음 예제에서는 데이터베이스의 기본 데이터 파일에서 모든 잔류 정보를 정리합니다 AdventureWorks2022
.
USE master;
GO
EXEC sp_clean_db_file_free_space @dbname = N'AdventureWorks2022', @fileid = 1;
참고 항목
데이터베이스 엔진 저장 프로시저(Transact-SQL)
고스트 정리 프로세스 가이드
sp_clean_db_free_space(Transact-SQL)
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기