잡힐듯 잡히지 않는 교착상태로 이렇게 글을 올립니다.
밑에 한번 글을 작성 했었는데요..
어느 날 부터 DB가 느려지고, 한번 느려진 이후 웹페이지 <-> DB서버 간 접속이 되지 않습니다.
임시 방편으로 위 증상을 잡기 전까지 DB서버 재시작 하는 BAT 파일을 만들어서 운용중에 있습니다.
회사에 입사한지 오래 되지 않았는데 오자마자 이 문제로 계속 삽질 하고 있습니다. (ㅠㅠ)
프로필러를 돌린 후 확인 결과 교착상태 가 몇건이 발생한걸 확인했고요
(모든 쿼리 구문에는 WITH(nolock) 구문이 없습니다.)
제 판단으로 이상한건 프로필러 기록상으로 데드락 발생 후
1시간 30분 후에 DB가 느려지고
웹페이지 에서 DB 연결이 안되는 현상이 발생합니다.
죄송한데 이제 문의사항 드리겠습니다. (__)
1. 교착상태 발생 되면 DB에 바로 영향을 받는게 아니라 어느정도 시간이 지난뒤에
DB에 영향이 받는게 맞는건지요?
2. 쿼리옵션힌트 WITH(NOLOCK)을 추가해주는 것이 도움이 될까요?
3. DB Table 리스트 불러올떄 공통 프로시저를 사용합니다.
예를들어 필드값, 테이블, PK값, WHERE 조건, ORDER BY 조건 등등 을 넘기면 공통프로시저에서 처리후
DLL 로 값을 넘기고 ASP로 리스트를 뿌려주는 형식입니다.
이 공통프로시저 상단에
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
구문을 추가해도 WITH(NOLOCK) 과 같은 효과를 볼수 있을까요?
이렇게 라도 안되면....
SQLTAG에서 하는 무료컨설트 라도
받아봐야 겠습니다.ㅠㅠ
SQL Server 운영과 튜닝 책을 구입해서
이렇게 저렇게 적용해 보고 있는데
DB가 깊게 들어갈 수록 쉽지가 않네요(ㅠㅠ)
감사합니다.
Comment 7
-
항해자™
2013.10.01 18:14
-
빌리
2013.10.04 11:13
좀더 모니터링 해본 후 컨설팅 해봐야 겠네요 ㅠㅠ
-
minsouk
2013.10.02 10:12
연락 받으면 해보겠습니다.
-
항해자™
2013.10.03 10:29
저도 연락주세요^^
-
빌리
2013.10.04 11:14
감사합니다. 조만간 연락한번 드리겠습니다. (ㅠㅠ)
-
빌리
2013.11.12 10:15
어느정도 해결 된것 같습니다.
1. MSSQL 최신 SP 패치 (이 부분이 가장큰것 같습니다.)
2. Win2008 Server 보안업데이트 (혹시 몰라서...)
3. min, max 메모리 설정 (글랜베리 아저씨 가 알려준 표에서 살짝 줄여서 설정했습니다.)
4. 오래 걸리는 쿼리 시간단축 ( 이 부분도 한 몫 한것 같습니다.)
5. 모든 쿼리문에 WITH(NOLOCK) 추가
위의 사항조치 후 한달정도 모니터링 결과 더이상 DB가 느려지거나
갑자기 SHUTDOWN 현상이 발생하지는 않고있습니다....
ㅠㅠ
-
건우아빠
2013.11.12 10:32
민석님에게 연락해서 전체적인 점검을 한번 받아보세요...
관리하는 디비를 가지고 점검을 하기 때문에 많은 공부도 됩니다.
SQLTag에서 무료 컨설팅 받아 보시는 것을 추천합니다^^