반응형
SQL 테스트시 다음의 명령을 실행 후 테스트합니다.
-- 현재 데이터베이스의 모든 더티 페이지를 디스크에 쓰고 버퍼를 정리
CHECKPOINT
GO
-- 버퍼 풀 초기화
DBCC DROPCLEANBUFFERS
GO
-- 프로시저 캐시 초기화
DBCC FREEPROCCACHE
GO
캐시 부분 확인및 삭제 방법
사용중인 캐시 추출
SELECT * FROM SYS.SYSCACHEOBJECTS WHERE [SQL] LIKE '%테이블이름%'
SELECT plan_handle, st.text
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE text LIKE N'%테이블이름%';
원하는 캐시 삭제
DBCC FREEPROCCACHE (0x06000500AECB3E1FD06EF56AB602000001000000000000000000000000000000000000000000000000000000)
데이터베이스 전체 캐시 삭제
선택한 DB의 캐시 삭제
SELECT * FROM SYSDATABASES
SELECT objtype, dbid, usecounts, status, sqlbytes, sql, *
FROM master.dbo.syscacheobjects
WHERE dbid = [조회할 dbid]
DBCC FlushPROCINDB([삭제할 dbid])
또는
모든 DB의 캐시 삭제
DBCC FREEPROCCACHE
GO
버퍼 풀 초기화
DBCC DROPCLEANBUFFERS
GO
DBCC DROPCLEANBUFFERS를 사용하면 서버를 종료하고 다시 시작하지 않아도 완전히 빈 버퍼 캐시를 사용하여 쿼리를 테스트할 수 있습니다. 버퍼 풀에서 빈 버퍼를 삭제하고 columnstore 개체 풀에서 columnstore 개체를 삭제하려면 먼저 CHECKPOINT를 사용해 콜드 버퍼 캐시를 생성합니다. 이 과정은 현재 데이터베이스에 대한 모든 커밋되지 않은 페이지를 디스크로 기록하고 버퍼를 비웁니다. 버퍼를 비운 후에 DBCC DROPCLEANBUFFERS 명령을 실행해 버퍼 풀에서 모든 버퍼를 제거할 수 있습니다.
'서버 개발 > 데이터베이스 기타 & 팁' 카테고리의 다른 글
Windbg 유용한 명령어 (0) | 2020.07.13 |
---|---|
[MSSQL] 실행 계획의 subtree cost는 무엇인가? (0) | 2020.04.22 |
[MSSQL] copy_t 더미 테이블 만들기 (0) | 2020.04.19 |
[MSSQL] 실행 계획 아이콘 (0) | 2020.04.19 |
[MSSQL] 실행 계획 보는 방법 (0) | 2020.04.19 |