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

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

로그 파일이 많으면 왜 안 좋은가

 

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

 

 

SQL Server에서 발생하는 트랜잭션은 트랜잭션 로그 라는 로그 파일에 기록 된다. 기본 설정으로 SQL Server를 설치 하였다면 확장자는 ldf로 표시 되며 하나의 로그 파일이 생성된다.

 

트랜잭션 로그 파일은 순환 파일이다. 한 개의 물리 파일에 4개의 가상 로그 파일이 있다고 가정 하였을 때 데이터베이스가 생성될 때 물리 로그파일의 시작 부분에서 논리로그 파일이 시작 된다. 새 로그레코드는 논리 로그의 끝 부분에 추가되며 물리 로그의 끝 방향으로 확장 된다. 로그에 물리 로그 파일이 여러 개 있으면 논리 로그는 모든 물리로그 파일을 거친 후 첫 번째 물리로그 파일의 시작 부분으로 순환된다.

 

다음 스크립트는 데이터베이스의 로그파일의 개수를 확인 하는 스크립트이다.

SELECT

DISTINCT [LogFiles],

COUNT (*) AS [Databases]

FROM (

SELECT

COUNT (*) AS [LogFiles]

FROM sys.master_files

WHERE [type_desc] = N'LOG'

GROUP BY [database_id]) [LogFilesCounts]

GROUP BY [LogFiles];

GO

 

로그파일이 많으면 왜 좋지 않을까? 로그파일이 많으면 재해 복구 중에 더 오랜 시간이 걸릴 수 있다. 데이터베이스를 복원을 할 때 로그 파일이 존재 하지 않는 경우 새로운 로그 파일 생성과 함께 0으로 초기화 하는 작업이 진행 된다. 로그 파일이 2개 이상인 경우 첫 번째 로그파일을 초기화하고 두 번째 로그 파일 또한 초기화 작업이 진행 되기 때문에 다운타임이 증가한다.

 

위에서 설명 하였듯이 로그 파일은 순환이다. 따라서 다중 로그 파일을 파일을 사용하는것은 성능상 큰 이점은 없다고 할 수 있다.

 

다만 가상 로그파일에 따란 성능 이슈는 있으므로 다음 포스트를 참고 한다.

 

 

[참고자료]

http://www.sqlskills.com/blogs/paul/multiple-log-files-and-why-theyre-bad/

 



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

No. Subject Author Date Views
1950 성능분석 16탄 – 메모리 / CPU 관련 성능 카운터 jevida(강성욱) 2016.10.15 4971
1949 성능분석 15탄 – I/O 관련 성능 카운터 jevida(강성욱) 2016.10.15 3993
1948 성능분석 14탄 – SQL Server 사용 성능 카운터 jevida(강성욱) 2016.10.15 3939
1947 성능분석 13탄 – 누락된 인덱스(missing index) jevida(강성욱) 2016.10.15 2326
1946 성능분석 12탄 – 문제 쿼리 식별 jevida(강성욱) 2016.10.15 2113
1945 성능분석 11탄 – 실행 계획 분석 jevida(강성욱) 2016.10.15 4089
1944 성능분석 10탄 – 쿼리 실행 대기 시간 분석(xevent) jevida(강성욱) 2016.10.15 1896
1943 성능분석 9탄 – 쿼리 실행 분석 jevida(강성욱) 2016.10.15 3756
1942 성능분석 8탄 – IO 통계 (DISK 활동 분석) jevida(강성욱) 2016.10.15 1455
1941 성능분석 7탄 – 프로파일러 대기 유형 및 PREEMPTIVE_OS_WRITEFILEGATHER jevida(강성욱) 2016.10.15 1565
1940 성능분석 6탄 – CPU 경합 및 동시성 관련 대기 유형 jevida(강성욱) 2016.10.15 1872
1939 성능분석 5탄 – 메모리 및 네트워크 관련 대기 유형 jevida(강성욱) 2016.10.15 1894
1938 성능분석 4탄 – 디스크 및 IO 관련 대기 유형 jevida(강성욱) 2016.10.15 2043
1937 성능분석 3탄 – 집계 대기 통계 jevida(강성욱) 2016.10.15 1907
1936 성능분석 2탄 – 실행 요청을 기다리는 작업 확인 및 분석 (병렬 처리 대기 확인) jevida(강성욱) 2016.10.15 1339
1935 성능분석 1탄 – 실행 요청을 기다리는 작업 확인 및 분석 jevida(강성욱) 2016.10.15 1960
1934 확장이벤트를 사용하여 데드락 정보 확인 jevida(강성욱) 2016.10.15 1546
1933 확장 이벤트를 사용한 CPU 고부하 쿼리 추적 [1] jevida(강성욱) 2016.10.15 2103
1932 데이터에 대한 이해와 spill in tempdb jevida(강성욱) 2016.10.13 1758
» 로그 파일이 많으면 왜 안 좋은가 jevida(강성욱) 2016.10.13 2044





XE Login