SQL SERVER 성능 개선 5(CPU 성능 분석)

3331 단어 sqlserver
SQL SERVER 성능 개선 5(CPU 성능 분석)
(1)개술
(1)CPU 는 데이터베이스 서버 에 있어 매우 중요 한 자원 이다.잔말 말고 다 들 알 잖 아.
(2)CPU 성능 을 어떻게 모니터링 합 니까?
2.1 system perfmon 을 사용 하여 프로세서:%Processor 시간 성능 계산 기 를 수집 할 수 있 습 니 다.다른 글 을 참조 할 수 있 습 니 다.
SQL SERVER 성능 개선 2(서버 의 전체 성능 분석)
2.2 SQL Server Performance Dashboard 를 사용 합 니 다.
(2)어떤 원인 이 CPU 성능 문 제 를 초래 할 수 있 습 니까?
(1)해시 연산,정렬 연산 등 CPU 의 연산 을 대량으로 소모 한다.
(2)실행 계획 의 컴 파일 과 재 컴 파일.
(3)색인 이 부족 한 대량의 IO 작업 도 추가 적 인 CPU 소 모 를 일 으 킬 수 있다.
(4)병행 작업.
잠깐 만...
(3)구체 적 인 수단
 (1)몇 가지 중요 한 기다 림 은 서버 등급 의 기다 림 을 먼저 확인한다.
SELECT wait_type,
       Sum(signal_wait_time_ms) AS TotalSignalWaitTime
FROM   sys.dm_os_wait_stats
GROUP  BY wait_type
ORDER  BY 2 DESC 

CXPACKET 대기:여러 스 레 드 가 동기 화 되 기 를 기다 리 면 이 대기 가 나타 납 니 다.
SOS_SCHEDULER_YIELD:CPU 를 포기 하고 계속 실행 을 기다 리 고 있 습 니 다.
만약 대량의 CXPACKET 대기 가 발견 된다 면 병행 으로 인해 발생 할 수 있 으 며,OLTP 시스템 에 서 는 병행 도 를 낮 추 는 것 을 고려 할 수 있다.
대량의 SOS 를 발견 하면SCHEDULER_YIELD 가 기다 리 는 것 은 CPU 에 병목 이 있다 는 것 을 설명 할 수 있 습 니 다.
(2)몇 개의 중요 한 카운터
sql statistics: sql compilations/sec     초당 조회 컴 파일 횟수
sql statistics: sql recompilations/sec  초당 조회 재 컴 파일 횟수
위의 두 성능 카운터 의 값 이 매우 높 은 것 을 발견 하면 CPU 성능 문제 가 컴 파일 되 어 발생 할 수 있 습 니 다.저장 프로 세 스 로 T-SQL 문 구 를 밀봉 하고 매개 변수 화 조 회 를 할 수 있 으 며 긴급 할 때 데이터 강제 매개 변 수 를 열 수 있 습 니 다.
(3)구문 단계 처리
SELECT TOP 10 total_worker_time / execution_count       AS [Avg CPU Time],
              (SELECT Substring(text, statement_start_offset / 2, (
                              CASE
                              WHEN statement_end_offset = -1 THEN Len(
                              CONVERT(NVARCHAR(max), text)) *
                                                                  2
                              ELSE statement_end_offset
                                                                    END
                              - statement_start_offset ) / 2
                      )
               FROM   sys.Dm_exec_sql_text(sql_handle)) AS query_text,
              *
FROM   sys.dm_exec_query_stats
ORDER  BY [Avg CPU Time] DESC  

 
select top 10 
    (total_logical_reads/execution_count) as avg_logical_reads,
    (total_logical_writes/execution_count) as avg_logical_writes,
    (total_physical_reads/execution_count) as avg_phys_reads,
     Execution_count, 
    statement_start_offset as stmt_start_offset, 
    sql_handle, 
    plan_handle
from sys.dm_exec_query_stats  
order by  (total_logical_reads + total_logical_writes) Desc

 
이 조 회 를 사용 하면 CPU 와 IO 가 가장 많이 소모 되 는 10 개의 문 구 를 조회 할 수 있 으 며,쓰기 방법 을 바 꾸 거나 색인 을 적 절 히 추가 하여 CPU 사용률 을 낮 출 수 있 는 지 하나씩 분석 할 수 있다(일반적으로 높 은 CPU 와 높 은 IO 관련 이 있 기 때문에 먼저 IO 를 낮 추고 직관 적 으로 처리 하 는 것 이 문장의 논리 적 읽 기 를 줄 이 는 것 이다).
(4)총화
CPU 최 적 화 는 장기 적 인 과정 입 니 다.현재 의 성능 카운터 와 기선 을 비교 하고 가능 한 한 빨리 문 제 를 발견 해 야 합 니 다.CPU 에 성능 문제 가 발생 한 것 은 CPU 에 병목 이 생 겼 다 는 것 을 의미 하지 않 습 니 다.다른 하드웨어 가 고장 났 거나 색인 이 의도 적 으로 삭제 되 었 거나 사이트 가 공격 을 받 았 다 는 것 을 예시 할 수 있 기 때문에 CPU 모니터링 이 중요 합 니 다.

좋은 웹페이지 즐겨찾기