SQL Server/SQL Server Tip

SQL Server 2014 VLF 알고리즘 변화

SungWookKang 2015. 7. 16. 08:39
반응형

SQL Server 2014 VLF 알고리즘 변화

 

  • Version : SQL Server 2014

 

SQL Server에서 로그 파일은 데이터 파일처럼 익스텐트로 구성되지 않고 가상 로그 파일(Virtual Log File, VLF)로 구성되어 있다. VLF는 로그 파일의 크기에 따라 가변적으로 변하며 SQL Server에 의해 정해진다.

 

VLF의 최소 단위는 256K이며 트랜잭션 로그가 가장 작은 512K일 때 두 개의VLF가 생성된다.

 

SQL Server 2014 이전까지 VLF 증가 알고리즘은 사이즈를 기준으로 한다.

  • 1MB ~ 64MB : 4개 VLF, 증가 크기는 각각의 약 1/4
  • 64MB ~ 1GB : 8개 VLF, 증가 크기는 각각의 약 1/8
  • 1GB ~ : 16개 VLF, 증가 크기는 각각의 약 1/6

 

만약 1GB 기가의 로그파일에서 512MB씩 200GB로 자동 증가 한다면 생성된 VLF는 8 + ((200-1)*2*8) = 3192개가 된다. 로그 파일 증가는 398번이 발생한다. ((200GB -1GB) / 512MB = 398)

 

SQL Server 2014 부터는 다음과 같이 변경 되었다. 1GB의 로그 파일에 512MB씩 200GB로 자동증가를 가정 하였을 때 초기 8개의 VLF가 생성되며, 로그 증가는 1G, 1.5G, 2G, 2.5G, 3G, 3.5G, 4G, 4.5G까지 총 56개의 VLF가 생성된다. 그리고 로그 증가가 4.5GB 이상일때 4.5GB당 1개의 VLF 가 증가한다. 따라서 (200GB - 4.5GB)*2 = 391 VLF이다. 이를 다 합치면 391 + 56 + 8 = 455 VLF가 생성된다.

 

 

455개의 VLF는 3192개의 VLF보다 성능 문제에 훨씬 이점이 있을 것이다. 호환성에 대한 부분에서는 내부 스토리지엔진에 의해 무시 된다.

 

 

[참고자료]

http://www.sqlskills.com/blogs/paul/important-change-vlf-creation-algorithm-sql-server-2014/?utm_source=rss&utm_medium=rss&utm_campaign=important-change-vlf-creation-algorithm-sql-server-2014

 

 

2014-01-28 / 강성욱 / http://sqlmvp.kr

 

SQL Server, SQL 2014, 가상 로그 파일, VLF, Virtual Log File, Transaction Log, 트랜잭션 로그, LDF, 데이터베이스, DBA, 로그축소, DB성능

반응형