본문 바로가기
AVAYA/통계

[쿼리] MS SQL 쿼리 중 CPU 점유율을 높이는 쿼리 찾아주는 쿼리문

by 섭생이 2015. 3. 3.
반응형

안녕하십니까.!

IPCC & IPT 구축/설계 일하는 섭생이 입니다.!


오늘은 간혹 별도의 솔루션을 쓰지 않고 개발된 통계/모니터링의 문제 해결을 위한 과부화(CPU) 처리에 대한

내용을 포스팅 하겠습니다.


저 같은 경우 IPCC 솔루션 구축 비용이 여유가 있다면 별도의 솔루션을 도입하여 그 엔진을 통해 통계 및 모니터링을

사용하는 것을 추천합니다. 그러나, 대부분의 기업은 그렇게 여유있는 프로젝트를 진행하지 못하는 것이 현실이죠~

이에 따라 저희같은 담당자들은 통계/실시간 모니터링 솔루션을 기획 하고 구현하여 좀더 정확한 예측

즉, 콜 & 상담사의  KPI를 산출하여 운영 관리가 가능하도록 개발 진행하는 것이 대부분이다.

그러나 이러한 별도 개발 솔루션은 적은 비용으로 매우 많은 기능을 수용해야 하는 단점이 있고, CS 협업 부서의 요청에 의한 과부화 상승 등의 장애 발생 포인트를 갖기도 합니다.


이러한 장비 상의 장애 대비를 위한 사전 확인 작업의 처음으로 콜통계 DB 및 상담사 DB 의 안정되 운영을 위해

서버에 무리를 주고 있는 쿼리를 찾아서 수정해 보자.


@매우 높은 부하량을 보이는 쿼리 찾기 (과부하 찾는 쿼리문)


CPU 점유가 많은 쿼리를 잡아 냅니다.

-----------------------------------------------------------------------------

USE master

ELECT TOP 10 

       REPLACE(CONVERT(VARCHAR(20), CONVERT(MONEY,qs.total_worker_time / qs.execution_count/1000),1),'.00','') as [Avg CPU Time(ms)]
      ,qs.execution_count
      ,substring (qt.text,
              qs.statement_start_offset/2+1,
            (case when qs.statement_end_offset = -1 then len (convert (nvarchar(max), qt.text)) * 2
             else qs.statement_end_offset end - qs.statement_start_offset)/2) as query_text
      ,qt.dbid
      ,sd.name
      ,qt.objectid
      ,qt.number
      ,qt.encrypted
      ,qt.text
      ,sr.session_id
      ,sr.command
      ,sr.status
      ,sr.last_wait_type
      ,sr.wait_resource
      ,sq.query_plan
      ,fs.text
  FROM sys.dm_exec_query_stats qs
       CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt 
       CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) as sq
       LEFT OUTER JOIN sys.databases as sd on qt.dbid = sd.database_id
       LEFT OUTER JOIN sys.dm_exec_requests as sr on qs.sql_handle = sr.sql_handle
       OUTER APPLY sys.fn_get_sql(sr.sql_handle) AS fs       
 ORDER BY qs.total_worker_time / qs.execution_count DESC

GO 


@상기 쿼리를 실행 후 확인 되는 과부하 쿼리는 최대한 빠르게 수정하여 패치 진행하여야 큰 장애를 대비하여

상태 좋은 서버를 갖게 될 것이다.


궁금한 점 문의 사항은 메일로 연락 주세요.

(maegi96@daum.net)

반응형