티스토리 뷰

반응형
.


업무를 진행하다보면 서버의

CPU 혹은 메모리 사용에 대해서

궁금해 질 때가 있다.

어떤 쿼리가 CPU의 IO를 가장 많이

잡아먹고 있는지

어떤 사용자 계정이 어떤 응용프로그램을

사용해서 서버에 붙어있는지

또는 락을 걸고 있는 프로세스는 없는지

만약 락을 걸고있다면 어떤 쿼리를 누가 사용하고 있는지 등등...


그래서 ...

쿼리 분석기 상에서 작업모니터를 보는 방법에 대해서 적어보도록 하겠다.


.
.
.
.

2009년 X월 XX일

지점에서 갑자기 전화가 걸려왔다.

내용은 사용하고 있는 응용프로그램의 속도가 특정시간대부터 너무 느리다는 것.

다급한 마음에 서버로 가서 작업관리자 창을 띄운다.

오 마이갓...





cpu 사용율이 비정상적으로 높게 지속되고 있다... ㄷㄷㄷ

이럴수가...

도대체 누가(어떤XX가...) 뭔 작업을 하고있는게야....

아 어쩐다.. 어쩌지....

아놔... 이노무 전화는 왜 이렇게 많이 오는거야... 어디서 부터 손대야 하지....

.
.
.
.
.



위의 얘기는 즉석에서 지어낸 얘기지만, 이런 예는 충분히 일어날 수 있다.

이럴 경우 어떻게 대처할 것인가.



일단

이럴경우에는 시스템 뷰에서 프로세스들의 정보를 가져올 수가 있는데

sysprocesses

란 이름의 뷰가 되시겠다.

이 뷰는 마스터 DB에서 접근해야 한다.

사용 예)

use master

go

select *
from sysprocesses

go


위의 쿼리를 돌려보면 알겠지만(결과가 너무 많아서 올릴 수가 없다...)

현재 서버에 접속해 있는 프로세스 정보와 락(잠금), 입출력 정보, CPU 등등

많은 내용을 볼 수가 있다.



.
.
.
.
.

아..... sysprocesses에서 어떤 프로세스가 락을 걸고 있는지 찾았다.

blocked 컬럼의 반환값이 0이 아닌 놈을 찾으면 되는구만

흐~~~

로그인을 언제 했고..... 마지막 배치한 타임이 이렇구먼

아....

잠깐만....

뭔가 부족하다.

이 프로세스가 사용한 쿼리를 알수는 없을까?

쿼리를 알아낸다면 적절한 튜닝을 통해서 문제를 해결할 수 있을지도 몰라.


.
.
.
.
.
.


자....  이런 생각이 들었다면

왠지 여기서 끝내기엔 왠지 섭섭한 느낌이 들 것이다.



그럼....



한 걸음 더 나아가 보자~~  \(′∀`)ノ





위의 쿼리 결과에서 우리는 spid라는 프로세스 id값을 가져올 수가 있다.

이것을 활용해서 해당 프로세스가 어떤 쿼리를 사용했는지를 알아보도록 한다.


inputbuffer


dbcc명령어를 가지고 요 놈을 이용하면 재미있는 결과를 볼 수가 있다.

역시 master DB를 사용해서 한다.

사용 예)

use master

go

dbcc inputbuffer(spid)

go

 

츠암~~ 쉽죠잉~

그럼 실제로는 어떤식으로 출력될까...

아래는 텍스트 타입으로 출력한 결과이다.

 

======================================================================================================================

EventType    Parameters       EventInfo
----------  --------------- --------------------------------------------------------
Language      Event 0             SELECT '컬럼명'  FROM '테이블명'  WHERE  '조건절'

(1개 행 적용됨) 

DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리
에게 문의하십시오.

======================================================================================================================

 

 

  

━━━(˚∀˚≡(˚∀˚≡˚∀˚)≡˚∀˚)━━━━!!!!!!!!!!

 

우와우~~!!!

성공.

이벤트타입과 파라미터, 이벤트정보가 한눈에 보인다. ㅎㅎㅎ

물론 비쥬얼 툴인 EM(sql2000), SSMS(sql 2005)에서도

작업모니터창을 통해서 확인이 가능하지만

쿼리툴을 사용하는것이 훨씬 더 빠른편이기 때문에 일차적으로 재빨리 확인하기에는

이쪽이 더 빠를 것이다.



- 끗-





.
.
.
.

(이거이거... 뭔가.....뻘쭘한데.....갑작스레 마무리 짓는 느낌...ㅋㅋㅋ)

다음번에도 더욱더 분발~~!!!`∀´) 

 

 

 

 

 

 

반응형
댓글
반응형
12-01 12:35
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함