2010-12-14 3 views
1

트랜잭션 로그를 별도의 물리적 드라이브로 이동하는 것이 권장되는 보고서를 작성하려고하지만 일부 번호를 제공해야합니다. 지난 달에 완료된 프로필의 쿼리가 있습니다. 기간의 감소 %를 결정하려고합니다. 100 % 정확한 것은 아니지만 매우 가까운 숫자만으로 충분할 것입니다.성능 향상을위한 수학 공식 이해하기

쿼리 1 읽 325,229,284 가 기입 : 85,989 시간 : 840,732

쿼리 2 읽 558,955,611 가 기입 : 87,066 시간 : 1,015,697

조회 3 읽 422,966,141 가 기입 : 85,087을 재생 시간 : 918225

현재 동일한 드라이브에서 읽기 및 쓰기가 발생합니다. 나는 그것들을 옮겨서 하나의 드라이브가되고 다른 하나는 쓰기를 원합니다. 나는 글을 쓰는 것이 읽기보다 20 % 더 느리다고 생각했지만 시크는 평균으로하지 않았다. 나는 7 % -15 % 사이에 있었지만 그 수치가 정확한지 전혀 모른다. 드라이브 탐색 시간을 평균 1ms라고 가정합니다.

+3

가능한 한 시스템을 미러링하고 실제 테스트를 수행하십시오. 가정보다 사실을 반박하는 것이 더 어렵습니다. –

답변

4

생각 :

  • 읽기/쓰기의 상관 관계는 일반적으로 로그와는 아무 상관 없다. 그것은 tempdb의 정렬 것, 스풀 등

  • 당신은 데이터베이스 LDF 당 하나의 여분의 볼륨을 필요 했어 : 그렇지 않으면 당신은 여전히 ​​거대한 머리의 움직임이 많은 데이터베이스가 하나의 볼륨에 기록

  • 당신이를 사용하지 않는 경우 SAN을 사용하면 볼륨 당 디스크 수가 줄어 듭니다.

  • tempdb를 별도의 볼륨으로 옮기는 것이 효과적 일 수 있습니다. 정말 tempdb의 이전 버전에 비해 살짝 2005 + SQL 서버는

  • MDF/LDF 분할 복구에 자주 (예 : 로그보다는 tempdb를 사용하는 트리거) : 데이터 볼륨이

    실패하면 당신은 비상 로그를 백업 할 수 있습니다
  • 쿼리에 422,966,141 개의 읽기가 있으면 코드와 인덱스를 수정하십시오. 별도의 로그 드라이브가 타이타닉 호에 갑판 의자를 재배치합니다.

+0

350gb 데이터베이스와 195gb 로그 파일 및 모든 드라이브가 하나의 드라이브에서 실행된다는 점에 동의합니다. 로그를 분리하고 tempdb와 인덱스를 분리하여 드라이브를 분리하고 기록 데이터를 보관하도록합니다. 쿼리 최적화는이 시점에서 그다지 도움이되지 않습니다. 이것은 시작에 불과합니다. –