2010-12-23 6 views
0

SQL Server 2005에 매우 큰 데이터베이스가있는 클라이언트가 있습니다. db에 할당 된 총 공간은 약 5Gb이고 트랜잭션 로그에는 10Gb입니다. 그냥 최근에 해당 데이터베이스에 연결하는 웹 응용 프로그램이 시간 초과되었습니다.큰 트랜잭션 로그로 인해 CPU가 증가 할 수 있습니다

웹 페이지에서 작업을 추적하고 이러한 웹 작업이 수행되는 동안 실행되는 쿼리를 검사했습니다. 실행 계획에 아무런 부작용이 없습니다.

쿼리 자체가 여러 조인을 사용했지만 매우 빠르게 완료됩니다. 그러나 db 서버의 CPU는 몇 초 동안 100 %로 향상됩니다. 이 문제는 여러 명의 동시 사용자가 시스템에서 작업하고있을 때 발생합니다 (여러 번 말할 때 약 5 읽음). 이 시간 초과가 발생하기 시작합니다.

내 질문에, 큰 트랜잭션 로그로 인해 CPU 성능에 문제가 발생할 수 있습니까? 현재 디스크에는 약 12GB의 여유 공간이 있습니다. 구성은 약간 손이 닿지 만 DB와 로그는 모두 동일한 물리적 디스크에 있습니다.

감사합니다. 로그 파일이 방대하고주의를 기울여야한다는 점에 감사하지만, 이것이 CPU 스파이크를 일으킬 수 있는지 (즉, 상관 관계를 찾으려고 노력하는지)에 대해 머리를 찾고 있습니다. 타임 아웃은 최근의 일이며이 앱은 몇 년 동안 반응했습니다 (즉 최근의 증상).

많은 감사,

답변

1

: 킴벌리 트립 GB를 측정 트랜잭션 로그를 500메가바이트의 자동 증가의 위쪽 제안 데이터 부족으로 인해 정확하게 말하기는 어렵지만 스파이크는 일반적으로 트랜잭션 로그 검사 점에서 관찰됩니다.

체크 포인트는 트랜잭션 로그에 추가되고 저장된 순차적 데이터를 실제 데이터 파일에 적용하는 절차입니다.

I/O을 포함하며 여기에는 CPU 작업을 포함하여 많은 작업이 발생하며 이는 활성도가 갑자기 높아지는 원인 일 수 있습니다.

일반적으로 트랜잭션 로그가 가득 찬 경우 또는 SQL Server이 복구 절차 (로그 다시 적용)가 1 분보다 오래 걸릴 것으로 판단하는 경우 검사 점이 발생합니다.

1

트랜잭션 로그 크기가 인 첫 번째 우선 순위는 입니다. DB를 올바르게 백업하고 얼마나 자주 백업합니까? 이 문제를 해결하고 CPU 스파이크가 사라지는 지 확인하십시오. CHECKPOINT는 트랜잭션 로그를 읽고 DB 파일에 변경 사항을 적용하는 프로세스입니다. 트랜잭션 로그가 큰 경우 영향을 미칠 수 있습니다.

0

크기가 문제를 일으키지 않은 로그를 가지고 있다면 놀랄 일이 아니지만 다른 것들도있을 수 있습니다. 최근에 통계가 업데이트 되었습니까? 일부 자동 작업이 실행 중일 때 스파이크가 발생합니까? 스파이크가있을 때 명확한 시간 패턴이 있습니까? 그런 다음 실행중인 다른 항목을 확인하십시오. 스파이크가 발생하기 시작한 시점에 서버에 새로운 버전의 내용을로드 했습니까?

어떤 경우에도 트랜잭션 로그를 수정해야합니다.너무 큰 이유는 백업되지 않았거나 충분히 자주 백업되지 않기 때문입니다. 데이터베이스를 백업하는 것만으로는 충분하지 않으며 로그를 백업해야합니다. 우리는 매 15 분마다 우리를 후퇴 시키지만, 우리는 매우 거래 시스템이며 우리는 데이터를 잃을 여유가 없습니다.