60
Feelanet Database Division SQL Server 2005 SQL 쿼리 진단 Hands on Lab 필라넷/SQL Server 아카데미 성대중 책임 [email protected]

SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues ... •DBCC TRACEON(1204,-1) –SQL

Embed Size (px)

Citation preview

Page 1: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

Feelanet Database Division

SQL Server 2005SQL 쿼리 진단 Hands on Lab

필라넷/SQL Server 아카데미

성대중 책임

[email protected]

Page 2: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database강사소개

연락처Email: [email protected]: blog.naver.com/dreamania_73

Community:http://www.dbguide.net/club/sub.jsp?club_id=sqldna

근무 이력현) 필라넷 / DB 사업부 / 책임 컨설턴트젂) 영림원 소프트랩 ERP 컨설턴트 / 개발자

주요 업무SQL Server 컨설팅 / 기술지원 / 개발 / 교육

강사 활동SQL Server 아카데미,TechNet, MCPWorld, 다우교육원 등

출판물SQL Server 2005 관리자 가이드 (Microsoft Korea)SQL Server 2005 개발자 가이드 (Microsoft Korea)SQL Server 2005 포켓 컨설턴트 관리자용(정보문화사)inside SQL Server 2005 T-SQL Programming(정보문화사)

Page 3: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database살펴볼 내용

Page 4: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database환경설정 및 사전준비사항

• SQL Server 2005

SQL Server 2005 SP2a(9.0.3042 이상) 설치

Database Engine, Reporting Service 설치

클라이언트 도구(SSMS, SQL Profiler 설치)

AdventureWorks 예제 데이터베이스 설치

• ClearTrace 유틸리티 설치

• SQLServer2005_Performance_Dashboard.msi 설치

• DMVStats 설치

• 실습매뉴얼 및 예제스크립트 파일 복사

Page 5: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database목표 및 전제조건

• 목표

SQL Server 2005의 성능 진단 방법 소개

SQL Server 2005의 추가 진단 기능 소개

SQL 쿼리 작성에 대한 권고사항 제앆

• 선수지식

SQL Server 2005의 클라이언트 도구에 대한 사용법

SQL 쿼리 작성 능력

• 교육대상

SQL Server 2005 DBA 및 성능관리 담당자

Page 6: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database시나리오

•AdventureWorks 데이터베이스 관리자

•시스템 성능 저하 문제 발생

•문제현상

•교착상태(Deadlock) 발생

•느리게 실행되는 쿼리 발생

•문제해결

•교착상태 모니터릿

•차단현상 모니터릿

•쿼리실행계획 모니터릿

Page 7: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database

제1장 SQL Server 2005 튜닝방법롞

Page 8: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Server 2005 진단분석 방법롞

진단분석 & 성능개선주기적이고 체계적인 진단분석 & 성능개선 프로세스 수행 필요!

1. 데이터베이스 환경 모니터링 5. 서버 구성 최적화

2. 병목 부분 리소스의 정밀진단

3. 문제 원인이 되는 개체 검색

4. 문제 원인 개체 성능 튜닝

4. 잠금 및 차단이슈 최적화

3. 인덱스 전략 최적화

2. 쿼리 최적화

1. 스키마 디자인5. 성능개선절차 시스템화

진단분석 절차 성능개선 절차

Page 9: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database모니터링과 베이스라인의 중요성

•모니터릿–VITAL SIGN

•성능 베이스라인

–판단 기준이 되는 시점의 시스템의 평균 성능 지표로 구성

–추세(Trend), 이력관리, 여러 시점의 베이스라인 필요(기준, 결산…)

•적용젃차

–얼맀나 느려졌나? 원래는 얼맀 정도였나?

–베이스라인과 달라진 것이 무엇이 있나?

–문제의 원인은 무엇이고, 그에 대한 대응방앆은 무엇인가?

–문제해결을 위해 소요예측시갂은 얼맀인가?

–문제해결 후 보고를 위한 데이터는 이력관리되는가?

Page 10: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Server 2005 실행모델

•실행단계① SPID 60 물리적 IO가 필요

한 페이지 요청

② SPID 60 대기자 리스트로이동

③ SPID 51 실행중 상태로 이동, SPID 64~93 1단계씩위로 이동

④ SPID 56 병렧처리 완료

⑤ SPID 56 실행가능한 큐 맀지링으로 이동

Select * from AdventureWorks.sale.SalesOrderHeaderwhere SalesOrderId = ?

>SPID 60

Page 11: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Server 2005 실행모델 대기시간

리소스 병목이슈 CPU병목이슈

대기시갂

T0 : 리소스를 요청, 리소스

대기 시작

T1 : 리소스 사용가능시점,

실행가능 큐에서 CPU대기

T1-T0 : 리소스 대기시갂

T2 : CPU 사용가능시점, 실

행 중 상태로 변경

T2-T1 : 시그널대기 시갂

T2-T0 : 젂체 대기 시갂

•T2 –T0 젂체대기

T0 T1

T1 –T0 리소스대기 T2 –T1 시그널대기

T2

대기자 리스트 큐 실행가능 큐

T2 –T0 젂체대기

Page 12: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database관련 리소스

•SQL Server Best Practice WebSite

– http://technet.microsoft.com/ko-kr/sqlserver/bb331794.aspx

•Technical White Paper

– SQL Server 2005 Performance Tuning using Waits and Queues

http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/perfor

mance_tuning_waits_queues.mspx

– TechNet 웹사이트 번역본 게시

http://www.microsoft.com/korea/sql/prodinfo/SQL2005_Resources.mspx

(실습매뉴얼과 예제 스크립트 파일에 PDF로 첨부)

Page 13: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database

제2장 SQL Profiler를 활용한 진단

Page 14: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler

•매우 유용한 성능튜닝도구

•서버 및 데이터베이스 동작 모니터

SQL Server 테이블이나 파일로 저장

추적한 이벤트를 단계별로 재생

일괄 처리나 트랜잭션 시작과 같은 엔진 프로세스 이

벤트를 추적

Page 15: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler -일반탭

•추적을 위한 기본 항목을 설정

추적이름

템플릾

저장

파일로저장

테이블로저장

종료시갂지정

Page 16: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler -이벤트선택탭

•추적대상이 되는 이벤트를 선택

이벤트 추가

모든 이벤트 보기

모든 열 보기

열 필터

열 구성

Page 17: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler -이벤트추출설정탭

•특정 이벤트를 XML 파일로 저장

Showplan XML

Deadlock XML

Page 18: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler를 활용한 문제해결(1/3)

차단현상

• SQL Server 2005의 새로운 기능

Blocked Process Report

Blocked Process threshold

Page 19: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database

•교착상태(Deadlock)띾?

•교착상태 문제해결

–추적 플래그

•DBCC TRACEON(1204,-1)

–SQL Profiler

•Locks: Deadlock Chain

•Locks: Deadlock graph

SQL Profiler를 활용한 문제해결(2/3)

교착상태

Page 20: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler를 활용한 문제해결(2/3)

교착상태-예제

프로세스 A (spid 51) 프로세스 A (spid 52)

Deadlock

BEGIN TRAN

UPDATE TableASET ColA = „COLA‟‟

WHERE KeyA = „A‟

1

BEGIN TRAN

UPDATE TableBSET ColB = „COLB‟‟

WHERE KeyB = „B‟

2

UPDATE TableASET ColA = „COLA‟‟

WHERE KeyA = „A‟

3

UPDATE TableBSET ColB = „COLB‟‟

WHERE KeyB = „B‟

4

KeyA ColA

A

TableAKeyB ColB

B

TableB

X Lock

X Lock

Blocking

Page 21: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler를 활용한 문제해결(2/3)

교착상태 –DeadLock Graph 이벤트

•SQL Server 2005의 새로운 기능

•교착상태 관렦 정보 표시

–관렦 쿼리 정보까지 표시

Page 22: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL Profiler를 활용한 문제해결(3/3)

성능카운터와 동기화

•SQL Server 2005의 새로운 기능

•특정 성능카운터 시점에 실행된 쿼리 찾기

–성능카운터 수집과 SQL Profiler 추적을 동기화

Page 23: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database실습시나리오

• 실습 2.1

– Blocked Process Report 이벤트로 차단 쿼리 찾기

• 실습 2.2

– Deadlock Graph 이벤트로 교착상태 찾기

• 실습 2.3

– 성능모니터와 Profiler의 동기화

Page 24: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database

제3장 악성쿼리 찾기

Page 25: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database악성쿼리를 찾아라!

• “미꾸라지” 한 맀리가 개울물 젂체를 흙탕물로 맂든다.

“악성쿼리”하나가 젂체 시스템 성능에 영향을 준다

80:20 의 법칙 :

소수의 20% 쿼리가 젂체 시스템 리소스의 80% 이상을 사용한다.

• 악성쿼리의 유형

맃은 리소스를 사용하는 쿼리

논리적 IO를 맃이 발생시키는 쿼리

CPU를 맃이 사용하는 쿼리(병렧처리)

수행시갂이 오래 걸리는 쿼리

차단현상이 발생하는 쿼리

컴파일, 재컴파일 이슈가 발생하는 쿼리

Page 26: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database

SQL Profiler를 사용하여 샘플링 기간동앆 수집

필수 이벤트 SP:Completed, TSQL:BatchCompleted

필요한 경우, 적절한 필터조건 지정

스크립트 기반으로 서버에서 추적이 실행되도록 설정

SQL 쿼리 진단 단계

1단계. SQL Server에서 실행 중인 SQL 쿼리 샘플링

2단계. 추적 파일 분석 및 악성쿼리 도출

추적파일을 분석용 데이터베이스에 업로드하여 분석

SSMS를 사용한 분석

SQL 쿼리 일반화 지원 도구를 사용한 분석(Read80Trace, ClearTrace, SQLNexus..)

악성쿼리기준 : Duration 1000 ms 이상, CPU 500 ms 이상, Reads 1000 이상

3단계. 악성쿼리에 대한 튜닝 및 튜닝성과 Before/After 비교

Page 27: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database필라넷 쿼리진단 템플릿(1/3)

start time end Time elapsed Time(분) 쿼리처리량/sec Active Requests Avg Response Time(ms) 임계처리량/sec

9:30 10:00 30 213 384,140 11.7 18,205.1

• SQL Profiler 추적 파일을 분석하여 악성쿼리를 도출

• 분석도구화 : SQL TM(Tuning Manager)

■ 전체 쿼리 현황

■ 악성쿼리의 리소스 점유율

Page 28: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database필라넷 쿼리진단 템플릿(2/3)

대량 I/O

잠금 및 차단

■ 악성쿼리 분포도

• 리소스와 응답시갂 기준으로 악성쿼리 분포 분석

• 개별 악성쿼리에 대한 DrillDown 기능

Page 29: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database필라넷 쿼리진단 템플릿(3/3)

Executes Duration (ms) CPU (ms) Reads Avg Duration (ms) Avg CPU (ms) Avg Reads Example Query

82 560,414 319,764 111,151,876 6,834 3,900 1,355,511 쿼리#1

1,833 539,278 15,617 72,641 294 9 40 쿼리#2

726 337,855 599,958 18,863,852 465 826 25,983 쿼리#3

8,001 293,117 242,702 4,327,145 37 30 541 쿼리#4

2,739 224,088 79,116 13,224,863 82 29 4,828 쿼리#5

36,063 190,390 145,110 11,232,369 5 4 311 쿼리#6

556 172,911 142,751 2,850,940 311 257 5,128 쿼리#7

99 151,415 127,901 2,838,759 1,529 1,292 28,674 쿼리#8

6,392 114,667 1,731 121,106 18 0 19 쿼리#9

33,472 103,838 100,199 2,622,649 3 3 78 쿼리#10

4,856 97,170 296 9,730 20 0 2 쿼리#11

288 88,476 200 12,515 307 1 43 쿼리#12

206 76,132 62,843 957,076 370 305 4,646 쿼리#13

28 70,844 298,577 54,530,617 2,530 10,663 1,947,522 쿼리#14

1,492 63,416 706 54,803 43 0 37 쿼리#15

• 쿼리 일반화로 동일 유형의 쿼리를 그룹핑

• Duration, CPU, Reads, Writes 별 상위 15위 쿼리 출력

■ 악성쿼리 목록

Page 30: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseSQL 쿼리 일반화

• SQL 쿼리 일반화

• 매개변수 치환을 통해 유사유형의 쿼리를 그룹핑

• 대량의 데이터에서 의미있는 쿼리군집을 찾아냄

• SQL Server 2000

– Read80Trace.exe 도구를 사용하여 쿼리 일반화

• SQL Server 2005

– ReadTrace.exe가 더 이상 별도로 지원되지 않음

– SQLNexus 유틸리티에 포함되어 제공

– ClearTrace 유틸리티라는 3rd Party 유틸리티 존재

Page 31: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseClearTrace 유틸리티(1/4)

• SQL 쿼리 일반화 도구

Profiler 추적결과 입력

분석 데이터베이스에

추적결과 업로드 분석

쿼리 일반화 기능

이벤트클래스별 집계

데이터칼럼별 집계

개별 쿼리에 대한 조회

Page 32: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseClearTrace 유틸리티(2/4)

• SQL 쿼리 일반화 결과 조회

동일 패턴 쿼리의 실행횟수(#), 평균값 계산

Page 33: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseClearTrace 유틸리티(3/4)

• SQL 쿼리 일반화 쿼리의 상세조회

동일 패턴에 포함된 개별 쿼리 조회

동일 유형 중 특정 매개변수가 입력되었을 때, 평균과

다른 성능을 나타내는 쿼리를 찾을 수 있음

Page 34: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseClearTrace 유틸리티(4/4)

• 이벤트 클래스별, 데이터칼럼별 집계

데이터 칼럼 집계

어플리케이션별 쿼리집계 평균 비교

로그인별 쿼리집계 평균 비교

호스트별 쿼리집계 평균 비교

Page 35: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database실습시나리오

• 실습 3.1

– Profiler/SSMS를 활용한 악성쿼리 찾기

• 실습 3.2

– ClearTrace를 활용한 악성쿼리 찾기

Page 36: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database

제4장Performance DashBoard를 활용한 진단

Page 37: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDynamic Management View

SQL Server 2005에 대한 정보를 제공

• SQL Server 2005의 새로운 기능

종류

공용 언어 런타임 관렦 동적 관리 뷰 I/O 관렦 동적 관리 뷰 및 함수

데이터베이스 미러릿 관렦 동적 관리 뷰 쿼리 알림 관렦 동적 관리 뷰

데이터베이스 관렦 동적 관리 뷰 복제 관렦 동적 관리 뷰

실행 관렦 동적 관리 뷰 및 함수 Service Broker 관렦 동적 관리 뷰

젂체 텍스트 검색 관렦 동적 관리 뷰 SQL Server 운영 체제 관렦 동적 관리 뷰

인덱스 관렦 동적 관리 뷰 및 함수 트랜잭션 관렦 동적 관리 뷰 및 함수

Page 38: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMV를 사용한 시스템 진단

• SQL Server 2005의 상태에 대한 상세한 정보를 제공

다양한 정보를 제공 사용하기 어렵다?

동적 정보를 제공 서버 재시작하면 초기화됨

추세 및 이력을 위해서는 별도의 작업이 필요

• 일반적으로 사용하는 DMV 분석 방법을 템플릾화

SQL Server 2005 관렦 스크립트 센터

http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql

2005/default.mspx

Page 39: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 란?

SQL Server 2005 DMV를 활용한 진단을 시스템화

• Performance Dashboard

SQL Server 2005 Service Pack 2 이후에서맂 지원

•기능

현 시점의 시스템 상태에 대한 사용자관점의 접근 가능

SQL Server Management Studio Custom Report 기능 지원

SQL Server 2005 Performance Dashboard 제공

Page 40: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database설치 및 구성

• 웹사이트 및 다운로드

http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0

d-7e0c-4730-8204-e419218c1efc&displaylang=en

• 설치

– SQLServer2005_PerformanceDashboard.msi 파일 실행

– C:\Program Files\Microsoft SQL

Server\90\Tools\PerformanceDashboard 폴더에 위치

– SSMS의 사용자정의보고서 기능 활용

Page 41: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 화면구성

SQL Server 2005의 상태에 대한 정보 제공-메인화면

Page 42: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 화면구성

각 영역별 DrillDown 기능 제공-차단정보

Page 43: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 화면구성

각 영역별 DrillDown 기능 제공-누적대기정보

Page 44: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 화면구성

각 영역별 DrillDown 기능 제공-대량IO 발생 쿼리

Page 45: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 화면구성

각 영역별 DrillDown 기능 제공-데이터베이스 옵션

Page 46: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 화면구성

각 영역별 DrillDown 기능 제공-차단정보

Page 47: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabasePerformance Dashboard 화면구성

각 영역별 DrillDown 기능 제공-차단정보

Page 48: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database실습시나리오

• 실습 4.1

– Performance Dashboard 구성

• 실습 4.2

– Performance Dashboard를 활용한 진단분석

Page 49: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database

제5장 DMVStats를 활용한 진단

Page 50: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 란?

대기 및 큐 분석 성능 튜닝 방법롞을 시스템화

• DMVStats 성능 데이터웨어하우스

–DMV 정보를 주기적으로 수집

–추세 및 이력에 대한 보고서 기능 지원(리포팅 서비스)

–웹사이트 및 다운로드(ver 1.01, 2007-07-09)

http://www.codeplex.com/sqldmvstats/

• SQL Server Customer Advisory Team의 노하우 젂수!

Page 51: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 설치 및 주요기능

•SQL Server 2005 이후 버젂에 대해서맂 지원

•주요 기능

–DMV 데이터 수집•SQL 에이젂트 자동화 작업으로 동작

–DMV 데이터웨어하우스 저장소(Repository)•DMVStatsDB 데이터베이스로 추가됨

–분석 및 보고•SQL Server 2005 Reporting Service 보고서 기능 활용

•설치

–InstallDMVStatsDBProcs.cmd : DB, 테이블, SP 생성

–DeployReports.cmd : Reporting Service 용 보고서 배포

Page 52: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 구성(1/2)

• 모니터릿 대상 DB를 선택

• DMVstats 데이터 수집 SQL 에이젂트 작업 활성화

– 기본값은 비활성화

• DMV 스냅숏 수집 갂격설정– sys.dm_exec_query_stats sys.dm_os_wait_stats

– exec msdb.dbo.sp_update_schedule @name=N'DMVstats Snapshot Schedule', @freq_subday_interval=10

• DMV 샘플릿 갂격설정– sys.dm_exec_requests and

sys.dm_os_waiting_tasks

– exec msdb.dbo.sp_update_schedule @name=N'DMVstats Sample Schedule',@freq_subday_type = 2,@freq_subday_interval = 30

Page 53: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 구성(2/2)

비교기준 시점이 되는 성능 베이스라인을 설정

•베이스라인의 설정

–시계열 분석

–어플리케이션 변경 젂후

–추세 분석

Sam

ple

s

S1

S2

S3

S4

S5

S6

S7

S 8

S 9

S10

S11

S12

S13

S14

S15

S16

S17

S18

S19

S20

S21

Snapsh

ots

SS1

11:00

SS 2

11:05

SS3

11:10

SS4

13:00

SS5

13:05

Base

lines

Friday11am_BL Friday01pm_BL

Page 54: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 수집데이터(1/2)

DMV의 기준 시점 스냅숏 정보

•DMV Snapshot

설명 테이블명 관련 성능이슈

데이터베이스 파일 IO 정보 virtual_file_stats 데이터베이스 IO 적체 여부

인덱스 통계정보 index_operational_stats 차단 및 핫스팟(hotspot) 여부

쿼리 통계정보 query_stats최소, 최대, 평균 작업자 수, 경과

시갂, IO 정보

대기 통계정보 wait_stats리소스 대기와 CPU 대기 정보(성

능카운터 정보와 상호 비교)

성능모니터 카운터 performance_counters 리소스 사용량과 가용성 정보

관리 instrumentation 각 DMV 정보 수집에 대한 기록

Page 55: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 수집데이터(2/2)

DMV의 기준 시점 샘플링 정보

•DMV Samples설명 테이블명 관렦 성능 이슈

사용자 요청 및 대기자 리스트

requests_and_waiters

sys.dm_exec_requests DMV의 현재사용자 요청 정보와 sys.dm_os_waiting_tasks DMV의 대기자 리스트 정보수집

차단 block_info 차단이 발생한 SQL 문

스케줄러 Schedulers최소, 최대, 평균 작업자 수, 경과시갂, IO

정보

대기 통계정보 wait_stats리소스 대기와 CPU 대기 정보(성능카운터

정보와 상호 비교)

성능 카운터 정보 performance_counters 리소스 사용량과 가용성 정보

관리 Instrumentation 각 DMV 정보 수집에 대한 기록

Page 56: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 활용법

분석 및 보고

•대기 통계 정보(리소스 대기 vs. 시그널 대기)

Page 57: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 활용법

분석 및 보고

•대기 통계 정보(각 대기유형별 점유율)

Page 58: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond DatabaseDMVStats 활용법

분석 및 보고

•잠금 관렦 대기유형 상세 정보 > 차단 정보

Page 59: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database실습시나리오

• 실습 5.1

– DMVStats 설치 및 구성

• 실습 5.2

– DMVStats를 활용한 진단분석

Page 60: SQL Server 2005 SQL 쿼리진단 Hands on Lab - dbguide.net€“SQL Server 2005 Performance Tuning using Waits and Queues  ... •DBCC TRACEON(1204,-1) –SQL

DB DeptBeyond Database

Database DivisionBeyond Database