MSSQL을 운용하다 보면 CPU 사용률이 100% 가까이 사용하는게 볼수 있다
그럼 여기서 어느 데이터베이스에서 어느 쿼리가 문제가 발생하는지 확인 해 볼수 있다
-
아래와 같이 CPU 사용률이 거의 90% 사용한다

2. 쿼리문을 통해서 어느 데이터베이스가 높은 CPU를 사용하는지 쿼리문으로 확인해 보자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
use tempdb if object_id('tempdb..#sp_who2') is not null drop table #sp_who2 CREATE TABLE #sp_who2 (SPID INT,Status VARCHAR(255), Login VARCHAR(255),HostName VARCHAR(255), BlkBy VARCHAR(255),DBName VARCHAR(255), Command VARCHAR(255),CPUTime INT, DiskIO INT,LastBatch VARCHAR(255), ProgramName VARCHAR(255),SPID2 INT, REQUESTID INT) INSERT INTO #sp_who2 EXEC sp_who2 SELECT * FROM #sp_who2 -- Add any filtering of the results here : WHERE Status = 'RUNNABLE' -- Add any sorting of the results here : ORDER BY CPUTime ASC |

3. cputime값에 높은 값을 가진 SPID를 확인 할수 있다 SPID값은 119
그럼 119의 PID값이 가진것에 쿼리가 어떤것인지 체크해 보자

4. select 문을 이용하는 쿼리문인데 이게 cpu 를 유발한다 kill 명령어로 해당 pid값을 kill 하자
5. 그럼 아래와 같이 cpu 90% 육박했던것이 30%로 다운된 것을 확인 할 수있다.
