다음을 통해 공유


DBCC FREESYSTEMCACHE(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

모든 캐시의 사용하지 않는 캐시 항목을 모두 해제합니다. SQL Server 데이터베이스 엔진은 현재 항목에 필요한 메모리 확보를 위해 사용하지 않는 캐시 항목을 백그라운드에서 미리 정리합니다. 그러나 이 명령으로 모든 캐시나 지정된 Resource Governor 풀 캐시에서 사용하지 않는 항목을 수동으로 제거할 수 있습니다.

Transact-SQL 구문 표기 규칙

구문

DBCC FREESYSTEMCACHE
    ( 'ALL' [ , pool_name ] )
    [ WITH
    { [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ]  }
    ]

인수

( 'ALL' [ , pool_name ] )

  • ALL

    지원되는 모든 캐시를 지정합니다.

  • pool_name

    리소스 관리자 풀 캐시를 지정합니다. 이 풀과 연결된 항목만 해제됩니다. 사용 가능한 풀 이름을 나열하려면 다음을 실행합니다.

    SELECT name FROM sys.dm_resource_governor_resource_pools;
    

이 명령을 사용하여 대부분의(전부는 아님) 캐시를 개별적으로 해제할 수 있습니다.

MARK_IN_USE_FOR_REMOVAL

현재 사용 중인 항목을 더 이상 사용하지 않게 되면 각 캐시에서 비동기적으로 해제합니다. DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL을 실행한 후 캐시에서 생성된 새 항목은 영향을 받지 않습니다.

NO_INFOMSGS

모든 정보 메시지를 표시하지 않습니다.

설명

DBCC FREESYSTEMCACHE를 실행하면 SQL Server 인스턴스에 대한 계획 캐시가 지워집니다. 계획 캐시를 삭제하면 모든 예정된 실행 계획이 다시 컴파일되며 일시적으로 갑자기 쿼리 성능이 저하될 수 있습니다. 계획 캐시의 삭제된 각 캐시 저장소에 대해 SQL Server 오류 로그에 다음 정보 메시지가 있습니다.

SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.

이 메시지는 캐시가 해당 시간 간격 내에 플러시되는 동안 5분마다 기록됩니다.

결과 집합

DBCC FREESYSTEMCACHE은 다음을 반환합니다.

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

사용 권한

서버에 대한 ALTER SERVER STATE 권한이 필요합니다.

예제

A. 리소스 관리자 풀 캐시에서 사용하지 않는 캐시 항목 해제

다음 예에서는 지정된 리소스 관리자 리소스 풀에만 사용되는 캐시를 정리하는 방법을 설명합니다.

-- Clean all the caches with entries specific to the
-- resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL', [default]);

B. 각 캐시에서 더 이상 사용되지 않는 항목 해제

다음 예에서는 MARK_IN_USE_FOR_REMOVAL 절을 사용하여 모든 현재 캐시에서 더 이상 사용되지 않는 항목을 해제합니다.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;

추가 정보