'가상 로그 파일'에 해당되는 글 1건

  1. 2014.03.27 VLF 크기에 따른 성능 차이
MS SQL2014.03.27 09:24

   

 

[내용]

   

SQL Server의 Log 파일은 내부의 VLF라는 가상 로그 파일로 구성 되어 있습니다.

VLF의 크기에 따라서 성능에 대한 차이를 보이고 있기 때문에 현재 사용되고 있는 Database의 VLF 크기를 확인하시고, 적절한 튜닝이 이뤄져야 할 것 입니다. 간단한 test로 그 성능 차이를 비교해 보겠습니다.

   

   

[환경]

   

OS: Winidows Server 2008 R2

Product: SQL Server 2008 R2

Database1: 처음 크기(1MB), 자동 증가(1MB)

Database2: 처음 크기(500MB), 자동 증가(1MB)

   

   

[TEST]

   

-- vlfDB1 생성합니다.

CREATE DATABASE [vlfDB1] ON PRIMARY

( NAME = N'vlfDB1', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\vlfDB1.mdf' , SIZE = 10240KB , FILEGROWTH = 10240KB )

LOG ON

( NAME = N'vlfDB1_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\vlfDB1_log.ldf' , SIZE = 1024KB , FILEGROWTH = 1024KB )

GO

   

-- vlfDB1VLF 크기를 확인합니다.

USE vlfDB1

GO

   

DBCC loginfo

   

   

-- vlfDB2 생성합니다.

CREATE DATABASE [vlfDB2] ON PRIMARY

( NAME = N'vlfDB2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\vlfDB2.mdf' , SIZE = 10240KB , FILEGROWTH = 10240KB )

LOG ON

( NAME = N'vlfDB2_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\vlfDB2_log.ldf' , SIZE = 512000KB , FILEGROWTH = 1024KB )

GO

   

-- vlfDB2VLF 크기를 확인합니다.

USE vlfDB2

GO

   

DBCC loginfo

GO

   

-- vlfDB1에데이터를 입력하며, Profiler(Duration) 확인합니다.

USE vlfDB1

GO

 

SELECT * INTO TBL_VLF

FROM AdventureWorks.Sales.SalesOrderDetail

GO

 

DBCC LOGINFO(vlfDB1)

GO

   

   

-- Duration 2996

   

   

-- vlfDB2에데이터를 입력하며, Profiler 확인합니다.

USE vlfDB2

GO

 

SELECT * INTO TBL_VLF

FROM AdventureWorks.Sales.SalesOrderDetail

GO

 

DBCC LOGINFO(vlfDB2)

GO

   

-- Duration 590

  

   

   

[결과]

   

VLF 크기가 큰 DB의 성능이 좋게 나온 것을 확인할 수 있었습니다. 물론 단순 비교를 통한 결과 이기는 하나 실제 운영 환경에 맞게 적절한 VLF 값을 가지고 가는 것은 성능에 좋은 영향을 끼칠 것으로 생각 됩니다.

 

 

신고
Posted by TM ~ing