데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

Checkpoint 추적하기

jevida(강성욱) 2016.09.29 03:58 Views : 1287

Checkpoint 추적하기

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

Checkpoint(검사점)은 현재 데이터베이스의 버퍼 캐시에 있는 커밋되지 않은 데이터 페이지를 디스크로 플러시(저장) 한다. 따라서 데이터베이스의 전체 복구 중에 처리되어야 하는 로그의 활성 부분이 최소화 된다.

 

전체 복구가 일어나는 동안 시스템이 중단되기 전 디스크로 플러시 되지 않은 로그의 수정 레코드가 롤포워드 된다. 또한 커밋 또는 롤백 로그 레코드가 없는 불완전한 트랜잭션과 관련된 모든 수정 내용이 롤백 된다.

 

자세한 내용은 아래 링크를 통해서 체크포인트에 대해서 알아 보자.

 

체크포인트는 각 데이터베이스 단위로 발생한다. 체크포인트 복구시간은 1분(기본값)에서 사용자 설정에 따라 발생 한다. 복구 시간이 클수록 많은 트랜잭션 로그가 쌓여 있으며 디스크로 플러쉬 할 때 I/O 비용이 발생 하므로 자신이 운영하는 환경을 고려하여 체크포인트 시간을 조절해야 한다.

 

일반적으로 성능 카운터를 통해 시스템을 모니터링 하다 보면 일정시간 그래프가 튀는 구간이 발생한다. 대부분 체크포인트가 발생할 시간에 CPU 및 디스크 사용량이 튀는 것을 확인 할 수 있는데 이 때 발생하는 성능 영향도를 평가하여 튜닝여부를 결정해야 한다.

 

 

어떤 데이터베이스가 체크포인트 되고 있는지 확인하려면 추적 플래그 3502, 3504, 3605를 사용하여 체크포인트를 추적 할 수 있다.

 

체크포인트 추적을 활성화 하고 데이터 입력 또는 변경 후 체크포인트가 수행 되었다. SQL Server 로그에서 추적 내용을 확인 할 수 있다.

-- enable these trace flags using the command

DBCC TRACEON (3502, 3504, 3605, -1)

 

-- disable these trace flags using the command

DBCC TRACEOFF (3502, 3504, 3605, -1)

 

 

추적된 체크포인트 정보와 성능 카운터에서 정보를 참고하여 체크포인트 I/O 성능에 문제가 있다면 더 자주 체크포인트를 실행하거나 I/O 서브시스템의 용량을 증가 시켜야 한다.

 

 

[참고자료]

 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
1811 CLR 사용시 CPU 사용률 증가 현상 jevida(강성욱) 2016.09.29 1763
1810 DMV를 이용한 CPU 사용량 높은 쿼리 찾기 jevida(강성욱) 2016.09.29 4452
1809 DMV를 이용한 인덱스 크기 및 조각화 정보 반환 jevida(강성욱) 2016.09.29 1158
» Checkpoint 추적하기 jevida(강성욱) 2016.09.29 1287
1807 중복 인덱스와 성능(Duplicate Indexes with Performance) jevida(강성욱) 2016.09.29 2299
1806 823, 824, 825, 832 오류 (DISK IO 오류) jevida(강성욱) 2016.09.29 2186
1805 DISK I/O 병목 확인 jevida(강성욱) 2016.09.29 3836
1804 SQL Server 2012에서 비상계정 생성하기 - 비밀번호를 잊어 버렸을 경우 대처하기 jevida(강성욱) 2016.09.29 1253
1803 SQL Server 차단 최소화 jevida(강성욱) 2016.09.29 1131
1802 자주 사용되는 System 함수 jevida(강성욱) 2016.09.29 1072
1801 프로시저와 임시테이블, 그리고 리컴파일 jevida(강성욱) 2016.09.29 2451
1800 access check cache 크기에 따른 성능 문제 jevida(강성욱) 2016.09.29 1051
1799 Hot Add CPU jevida(강성욱) 2016.09.29 851
1798 스레드 및 파이버 실행 jevida(강성욱) 2016.09.29 1018
1797 CPU에 스레드 할당 및 lightweight pooling 옵션 사용 jevida(강성욱) 2016.09.29 1731
1796 스레드 및 태스크 아키텍처 jevida(강성욱) 2016.09.29 1414
1795 메모리 관리 아키텍처 – NUMA 버퍼 풀 증가 및 축소 jevida(강성욱) 2016.09.29 1232
1794 메모리 관리 아키텍처 – NUMA 지원 방법 jevida(강성욱) 2016.09.29 1555
1793 메모리 관리 아키텍처 – NUMA(Non-Uniform Memory Access)이해 jevida(강성욱) 2016.09.29 1417
1792 메모리 관리 아키텍처 – Hot Add 메모리 jevida(강성욱) 2016.09.28 929





XE Login