트랜잭션 로그 파일을 별도의 드라이브에 배치하면 성능상의 이점이 있습니까?


9

하나의 하드 드라이브에 SQL Server 데이터 파일을 배치하고 다른 하나의 트랜잭션 로그에 SQL Server 데이터 파일을 배치하는 장점을 설명하는 많은 블로그 게시물과 모범 사례 기사가 있습니다. 주어진 이유는 데이터베이스 파일에 임의의 읽기 및 쓰기가 발생하고 트랜잭션 로그에는 순차적 쓰기 만 있기 때문입니다.

그러나 수백 개의 데이터베이스가 있다면 어떨까요? 수백 개의 트랜잭션 로그 파일을 별도의 디스크에 배치하면 성능상의 이점이 있습니까? 여러 트랜잭션 로그를 작성하는 경우 트랜잭션 로그 쓰기는 데이터베이스 쓰기와 마찬가지로 임의적이라고 생각합니다.

답변:


7

옳은. 이론적으로, 수백 개의 DB가있는 경우 각 로그마다 하나씩 100 개의 드라이브가 필요합니다. 실제로 그러한 경우에는 신경 쓰지 않지만 100 개의 DB가있을 때 DB 에 대해 최고의 TPC 성능을 기대하지 않는 이유가 있습니다 . 처리량이 많고 엄격한 SLA가있는 일부 DB가있을 수 있으며 각각 별도의 스핀들에 배치 할 수있는 반면, 많은 하위 레벨 SLA는 몇 개의 공유 디스크에 넣을 수 있습니다.


2

트랜잭션 로그는 정확히 모든 트랜잭션의 실행 로그입니다. 따라서 검사 점 및 덮어 쓰기 또는 잘 리거나 덮어 쓸 때까지 한 방향으로 계속 채워집니다. 덮어 쓰기는 순차적입니다.

데이터 파일을 고려하십시오. 고객 레코드에는 5 년 전의 주문과 10 년 전의 주문이 포함될 수 있습니다. 해당 주문을 삭제하면 (예 : 다른 곳에 데이터를 보관함) 현재 로그에서 1을 삭제하고 2를 순서대로 삭제합니다. 그러나 데이터 파일에서 5 및 10 년 전에 작성된 블록을 터치했습니다.

그래서 그것은 확실히 중요합니다 :)


2

트랜잭션 로그를 별도의 디스크에 배치하면 다른 데이터 / 로그 파일과 함께 배치하는 것보다 성능이 향상됩니다. 모든 로그를 동일한 디스크에 배치하면 실제로 순차 IO를 수행하는 것이 아니라 이러한 로그 파일간에 임의의 IO를 수행하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.