sp_filestream_force_garbage_collection(Transact-SQL)
FILESTREAM 가비지 수집기를 실행하고 불필요한 FILESTREAM 파일을 삭제합니다.
가비지 수집기를 사용하여 FILESTREAM 컨테이너 안의 삭제된 파일을 모두 정리해야 해당 컨테이너를 제거할 수 있습니다. FILESTREAM 가비지 수집기는 자동으로 실행됩니다. 그러나 가비지 수집기가 실행되기 전에 컨테이너를 제거해야 할 경우 sp_filestream_force_garbage_collection을 사용하여 가비지 수집기를 수동으로 실행할 수 있습니다.
구문
sp_filestream_force_garbage_collection [ @dbname = ] 'database_name' , @filename = 'logical_file_name' ]
인수
@dbname = database_name**'**
가비지 수집기를 실행할 데이터베이스 이름을 표시합니다.[!참고]
dbname은 sysname입니다. 지정하지 않으면 현재 데이터베이스로 가정합니다.
@filename = logical_file_name
가비지 수집기를 실행할 FILESTREAM 컨테이너의 논리적 이름을 지정합니다. @filename은 선택 사항입니다. 논리적 파일 이름을 지정하지 않으면 가비지 수집기가 지정한 데이터베이스의 FILESTREAM 컨테이너를 모두 정리합니다.
반환 코드 값
값 |
설명 |
0 |
작업 성공 |
1 |
작업 실패 |
결과 집합
값 |
설명 |
---|---|
file_name |
FILESTREAM 컨테이너 이름을 나타냅니다. |
num_collected_items |
이 컨테이너에서 가비지 수집된(삭제된) FILESTREAM 항목(파일/디렉터리) 수를 나타냅니다. |
num_marked_for_collection_items |
이 컨테이너에서 가비지 수집을 위해 표시된 FILESTREAM 항목(파일/디렉터리) 수를 나타냅니다. 이 항목은 아직 삭제되지 않았지만 다음 가비지 수집 단계에서 삭제할 수 있습니다. |
num_unprocessed_items |
이 FILESTREAM 컨테이너에서 가비지 수집을 위해 처리되지 적합한 FILESTREAM 항목(파일 또는 디렉터리) 수를 나타냅니다. 다음을 비롯하여 다양한 이유로 항목이 처리되지 않을 수 있습니다.
|
last_collected_xact_seqno |
지정한 FILESTREAM 컨테이너에 대해 파일이 가비지 수집된 마지막 해당 LSN(로그 시퀀스 번호)을 반환합니다. |
주의
요청한 데이터베이스 및 FILESTREAM컨테이너에서 완료될 때까지 FILESTREAM 가비지 수집기 태스크를 명시적으로 실행합니다. 더 이상 필요하지 않은 파일은 가비지 수집 프로세스에서 제거됩니다. 이 작업을 완료하는 데 필요한 시간은 최근에 FILESTREAM 데이터에 발생한 DML 작업의 양과 해당 데이터베이스 또는 컨테이너에 있는 FILESTREAM 데이터의 크기에 따라 결정됩니다. 데이터베이스를 온라인 상태로 설정하여 이 작업을 실행할 수 있지만 그러면 가비지 수집 프로세스가 수행하는 여러 I/O 작업으로 인해 실행 중에 데이터베이스 성능이 저하될 수 있습니다.
[!참고]
평소 업무 시간 외에 꼭 필요할 때만 이 작업을 실행하는 것이 좋습니다.
별도의 컨테이너 또는 별도의 데이터베이스에서만 이 저장 프로시저의 여러 호출을 동시에 실행할 수 있습니다.
사용 권한
db_owner 데이터베이스 역할의 멤버 자격이 필요합니다.
예
다음 예에서는 FSDB 데이터베이스의 FILESTREAM 컨테이너에 대해 가비지 수집기를 실행합니다.
1.컨테이너 지정 안 함
USE FSDB;
GO
EXEC sp_filestream_force_garbage_collection @dbname = N'FSDB';
2.컨테이너 지정
USE FSDB;
GO
EXEC sp_filestream_force_garbage_collection @dbname = N'FSDB' @filename = N'FSContainer';
참고 항목
관련 자료
SQL Server 2008의 FILESTREAM 저장소(FILESTREAM Storage in SQL Server 2008)