MS-SQL Server

SQL Server 2008의 최소 로깅(Minimal Logging) 관련 고민꺼리

안보갑 2009. 6. 25. 22:57

http://blog.ithero.co.kr/blog_post_176.aspx

위의 김정선님 블로그에 올라온 글을 보고 테스트해 봤는데… 결과가 조금 특이해서 나름 정리해 봤습니다.

 

복구모드 : Full, 입력은 Table Lock 사용할 경우에

 

기존 2005까지는 Table Lock을 걸던 걸지 않던 간에 Log 기록되는 방식이

한 건의 Row 당 하나씩의 기록이 이루어 졌습니다.

그런데 2008 부터는 Log에 기록되는 방식이 Page 단위로 데이터를 기록하고
PFS에 관련 데이터를 수정하는 방식으로 진행이 됩니다.

 

이렇게 진행 함으로서의 장점이라고 한다면 당연히 전체 적인 Row에 쌓이는 건수는 줄게 되고

데이터 사이즈도 약간 줄게 되는 현상은 발생 합니다.

무엇보다도 가장 큰 장점은 데이터 rollback 수행 할 때 발생 합니다.
2005 이전까지는 일반적으로 알고 있는 방식인 데이터를 쌓는 작업에 해당하는 Log가

거의 비슷하게 다시 기록되는 현상이 발생 합니다.

그런데 2008에서는 Page 단위로 기록이 되어 있기 때문에(추측…) PFS의 데이터만 수정해주고

롤백이 완벽히 이루어 지는 현상을 보이고 있네요~

 

대량의 데이터 입력하고 오류가 발생하여 롤백이 이루어질 시에 2008에서는 Table Lock을 걸고 작업을 하면

엄청난 성능 향상을 기대할만한 내용일 듯 합니다. (단 복구모드 Full일 경우)

그리고 Simple의 경우에는 데이터에 대한 저장을 Log에 하지 않고 그냥 PFS의 정보만 사용합니다. (아마 이 부분이 최소 로깅을 하는 것으로 보임)

좀더 자세한 부분은 추가적인 테스트가 필요해 보입니다. ^^