데이터베이스 성능을 고려할 때 VLF는 얼마나 중요합니까? VLF의 최적 상황은 무엇입니까?
데이터베이스 성능을 고려할 때 VLF는 얼마나 중요합니까? VLF의 최적 상황은 무엇입니까?
답변:
가상 로그 파일이란 무엇입니까?
SQL Server는 각 데이터베이스의 트랜잭션 로그 파일을 '가상 로그 파일'(또는 VLF)이라고하는 더 작은 청크로 나눕니다. 이들의 주요 기능은 로그 백업에서 잘림 표시 자로 사용됩니다. 즉, SQL Server는 완전히 비어있는 VLF 만 지우고 재사용 할 수 있도록 표시합니다. MSDN에는 Transaction Log-Physical Architecture에 관한 내용이 있습니다.
VLF 수는 어떻게 결정됩니까?
로그 파일이 커질 때마다 (자동 증가 또는 수동 증가를 통해) 로그 파일의 새 섹션은 순전히 새 섹션의 크기 (기존 트랜잭션 로그는 그대로 남음)에 따라 여러 VLF로 나뉩니다. 따라서 작은 자동 증가 설정 (즉, 기본값 인 10 % 자동 증가)으로 인해 많은 수의 VLF가 생성됩니다.
많은 VLF의 의미는 무엇입니까?
많은 VLF가 발생하는 주요 문제는 다음과 같습니다.
DBCC
에는 백그라운드에서 데이터베이스 스냅 샷을 사용하여 차단하지 않고 일관성 검사를 용이하게하기위한 특정 기능도 포함됨)에 유의하십시오 .데이터베이스에 몇 개의 VLF가 있는지 어떻게 알 수 있습니까?
DBCC LOGINFO
데이터베이스의 트랜잭션 로그에서 각 VLF에 대해 1 행을 반환합니다. 이 질문 에는 서버의 모든 데이터베이스에 적용 할 수있는 유용한 스크립트가 있습니다.
VLF가 너무 많습니까?
그것은 당신이 스스로 결정해야 할 판단입니다. 내 개인적인 경험에 따르면 50 세 미만은 엉망 가치가 없으며 100 개 (또는 그 이상)는 자동 성장 설정을 수정하고 (다음 유지 관리 창에서) 로그를 축소하고 다시 자라는 정신 적 메모를합니다 (아래와 같이) .
도움! 천억 VLF가 있으며 데이터베이스 복구에는 하루 종일 걸립니다!
간단한 개요 ( Kimberly Tripp의 블로그에서 제공 ) :
BACKUP LOG
)DBCC SHRINKFILE
에 TRUNCATEONLY
가능한 가장 작은 크기로 로그 파일을 축소합니다.ALTER DATABASE [...] MODIFY FILE [...] SIZE=newsize
단일 단계로 트랜잭션 로그 백업 크기를 조정하려면 실행하십시오 **.** 참고-로그 파일이 매우 큰 경우 (수십 GB 이상) 로그 백업이 지나치게 과도하게되지 않도록 적절한 크기의 적절한 수의 VLF를 얻기 위해 여러 단계로 크기를 조정할 수 있습니다. VLF는 잘림 단위이므로 Kim의 블로그에 자세히 설명 된대로 로그 백업 크기도 결정합니다 .