다음을 통해 공유


sp_clean_db_file_free_space(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

데이터 페이지에 남는 정보를 제거합니다. sp_clean_db_file_free_space 는 데이터베이스의 한 파일에서만 모든 페이지를 정리합니다.

Transact-SQL 구문 표기 규칙

구문

sp_clean_db_file_free_space
    [ @dbname = ] N'dbname'
    , [ @fileid = ] fileid
    [ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]

인수

[ @dbname = ] N'dbname'

정리할 데이터베이스의 이름입니다. @dbname 기본값이 없는 sysname입니다.

[ @fileid = ] fileid

정리할 데이터 파일 ID입니다. @fileid 기본값이 없는 int입니다.

[ @cleaning_delay = ] cleaning_delay

각 페이지 정리 전에 몇 초 단위로 지연할 간격을 지정합니다. @cleaning_delay 기본값인 int0. 이 지연은 정화 작업 시간을 늘리는 대신 I/O 시스템의 부하를 줄이는 데 도움을 줍니다.

반환 코드 값

0(성공) 또는 1(실패).

설명

sp_clean_db_file_free_space 시스템 저장 프로시저는 페이지 내 모든 행(고스트 레코드도 포함)을 페이지 시작 지점으로 이동시키고, 나머지 데이터 공간을 0초기화합니다. 데이터 파일이나 기본 저장소의 물리적 보안이 위험한 환경에서는 이 저장 프로시저를 사용하여 잔여 삭제된 데이터가 데이터 파일이나 저장소에 남지 않도록 할 수 있습니다.

실행 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 데이터베이스 역할의 멤버 자격이 필요합니다.

예제

다음 예제에서는 데이터베이스의 기본 데이터 파일에서 모든 잔류 정보를 정리합니다 AdventureWorks2025 .

USE master;
GO

EXECUTE sp_clean_db_file_free_space
    @dbname = N'AdventureWorks2022',
    @fileid = 1;