23
SQL Server 2000 SQL Server 2000 세세세 세세세 Profiler Profiler 세 세세세 세세세세 세 세세세 세세세세 세세 세세 : : 세세세 세세세 http:// http:// mssql.ce.ro mssql.ce.ro

SQL Server 2000 세미나 Profiler 를 이용한 문제해결

Embed Size (px)

DESCRIPTION

SQL Server 2000 세미나 Profiler 를 이용한 문제해결. 강사: 정원혁 http://mssql.ce.ro. 차 례. 문제 해결 기법 프로필러가 뭘까 ? 추적 만들기 추적 분석하기 추적 플래그 사용하기 추적 재생하기. 차 례. 문제 해결 기법 프로필러가 뭘까 ? 추적 만들기 추적 분석하기 추적 플래그 사용하기 추적 재생하기. 문제 해결 기법. 데이터의 확보 병모가지 정확히 찾기 Devide & conquer - 숫자 맞추기 게임 - PowerPoint PPT Presentation

Citation preview

Page 1: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

SQL Server 2000 SQL Server 2000 세미나세미나ProfilerProfiler 를 이용한 를 이용한

문제해결문제해결강사강사 : : 정원혁정원혁

http://http://mssql.ce.romssql.ce.ro

Page 2: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

차 례차 례

문제 해결 기법 문제 해결 기법 프로필러가 뭘까프로필러가 뭘까 ?? 추적 만들기추적 만들기 추적 분석하기추적 분석하기 추적 플래그 사용하기추적 플래그 사용하기 추적 재생하기추적 재생하기

Page 3: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

차 례차 례

문제 해결 기법 문제 해결 기법 프로필러가 뭘까프로필러가 뭘까 ?? 추적 만들기추적 만들기 추적 분석하기추적 분석하기 추적 플래그 사용하기추적 플래그 사용하기 추적 재생하기추적 재생하기

Page 4: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

문제 해결 기법문제 해결 기법 데이터의 확보데이터의 확보 병모가지 정확히 찾기병모가지 정확히 찾기 Devide & conquer Devide & conquer

-- 숫자 맞추기 게임숫자 맞추기 게임 자기만의 자기만의 trouble shooting trouble shooting

guide guide 만들기만들기

Page 5: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

차 례차 례

문제 해결 기법 문제 해결 기법 프로필러가 뭘까프로필러가 뭘까 ?? 추적 만들기추적 만들기 추적 분석하기추적 분석하기 추적 플래그 사용하기추적 플래그 사용하기 추적 재생하기추적 재생하기

Page 6: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

프로필러프로필러 서버 및 데이터베이스 동작 모니터서버 및 데이터베이스 동작 모니터

- - 교착 상태 수교착 상태 수 , , 치명적인 오류치명적인 오류 , , 저장 프로시저 저장 프로시저 및 및 Transact-SQL Transact-SQL 문 추적문 추적 , , 로그인 동작로그인 동작

SQL SQL 프로필러 데이터를 프로필러 데이터를 SQL Server SQL Server 테이블이나 파일에 캡처해서 분석가능테이블이나 파일에 캡처해서 분석가능

캡처한 이벤트를 단계별로 재생캡처한 이벤트를 단계별로 재생- - 문제 해결문제 해결- - 부하 걸기 시뮬레이션부하 걸기 시뮬레이션

SQL SQL 프로필러는 일괄 처리나 트랜잭션 시작과 프로필러는 일괄 처리나 트랜잭션 시작과 같은 엔진 프로세스 이벤트를 추적같은 엔진 프로세스 이벤트를 추적

Page 7: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

차 례차 례

문제 해결 기법 문제 해결 기법 프로필러가 뭘까프로필러가 뭘까 ?? 추적 만들기추적 만들기 추적 분석하기추적 분석하기 추적 플래그 사용하기추적 플래그 사용하기 추적 재생하기추적 재생하기

Page 8: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

템플릿템플릿 어떤 것어떤 것 (( 이벤트이벤트 , ,

데이터데이터 , , 필터필터 )) 을 을 추적 할 지 미리 추적 할 지 미리 정의해 둔 것정의해 둔 것

나만의 템플릿을 나만의 템플릿을 만들어 둘 수도 만들어 둘 수도 있다있다 ..

기본 템플릿 기본 템플릿 그대로 사용하는 그대로 사용하는 것은 과부하를 걸 것은 과부하를 걸 수 있다수 있다 ..

Page 9: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

파일파일 / / 테이블 저장테이블 저장

Page 10: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

파일파일 / / 테이블 저장테이블 저장 파일 파일

기본 기본 5MB 5MB 단위로 롤 오버 단위로 롤 오버 (( 최대 최대 1GB)1GB) trace1.trc , trace2.trc, ….trace1.trc , trace2.trc, ….

서버에서 처리서버에서 처리 테이블 저장 주의 테이블 저장 주의 / / 대신 나중에 대신 나중에

fn_trace_gettable() fn_trace_gettable() 를 이용하여 테이블로 를 이용하여 테이블로 변경변경

시작 시작 / / 종료 시간종료 시간 저장 안 하면저장 안 하면……

Page 11: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

이벤트이벤트 제외제외 : : 보안 감사 보안 감사 / / 세션세션 ExistingConnection ExistingConnection

RPC completedRPC completed TSQL Batch TSQL Batch

completedcompleted

경고경고 Attention Attention Exception Exception Execution WarningsExecution Warnings

Page 12: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

이벤트이벤트 잠금잠금

Lock:DeadlockLock:Deadlock Lock:Deadlock Chain Lock:Deadlock Chain Lock:Timeout Lock:Timeout

성능성능 Execution Plan Execution Plan Show Plan All Show Plan All

프로시저프로시저 SP:CacheHit SP:CacheHit SP: ExecContextHit SP: ExecContextHit SP:Recompile SP:Recompile

Page 13: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

이벤트이벤트 트랜잭션트랜잭션

SQLTransaction SQLTransaction TSQLTSQL

Exec Prepared SQL Exec Prepared SQL Prepare SQL Prepare SQL

해당 이벤트를 해당 이벤트를 가져와야 특정 가져와야 특정 정보가 나타난다정보가 나타난다 ..

Page 14: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

데이터 열데이터 열 EventClass EventClass CPU / Duration CPU / Duration Reads/ WritesReads/ Writes TextDataTextData ClientProcessID / SPIDClientProcessID / SPID Binary Data Binary Data Application Name Application Name

/Host Name /Host Name Database IDDatabase ID

GroupingGrouping

Page 15: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

필터 걸기필터 걸기 Min, max Min, max

값 지정 가능 값 지정 가능 (duration, (duration, cpu, readscpu, reads등에 대해등에 대해 ))

Page 16: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

차 례차 례

문제 해결 기법 문제 해결 기법 프로필러가 뭘까프로필러가 뭘까 ?? 추적 만들기추적 만들기 추적 분석하기추적 분석하기 추적 플래그 사용하기추적 플래그 사용하기 추적 재생하기추적 재생하기

Page 17: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

추적 분석추적 분석 By duration/ By duration/

CPU/ reads / CPU/ reads / writeswrites

By userBy user FindFind

Page 18: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

추적 분석추적 분석 테이블로 저장테이블로 저장select * into tr1a from tr1select * into tr1a from tr1alter table tr1a alter table tr1a

add sql varchar(3000)add sql varchar(3000)update tr1a update tr1a set sql = convert(varchar(3000), textdata)set sql = convert(varchar(3000), textdata)

alter table tr1a alter table tr1a drop column textdatadrop column textdata

select sql, duration, cpu, reads, writes select sql, duration, cpu, reads, writes from tr1afrom tr1aorder by sqlorder by sql

select convert(varchar(80), sql), avg(duration) dr, avg(cpu) c, select convert(varchar(80), sql), avg(duration) dr, avg(cpu) c, avg(reads) r, avg(writes ) wavg(reads) r, avg(writes ) w

from tr1afrom tr1agroup by convert(varchar(80), sql)group by convert(varchar(80), sql)

Page 19: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

차 례차 례

문제 해결 기법 문제 해결 기법 프로필러가 뭘까프로필러가 뭘까 ?? 추적 만들기추적 만들기 추적 분석하기추적 분석하기 추적 플래그 사용하기추적 플래그 사용하기 추적 재생하기추적 재생하기

Page 20: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

dbcc traceon() dbcc traceon()

추적 플래그 설정된 모든 연결에 적용추적 플래그 설정된 모든 연결에 적용 부작용 주의부작용 주의 DBCC TRACEOFFDBCC TRACEOFF TRACESTATUS TRACESTATUS 1204 1204 / / 12051205 3604 3604 / / 36053605 8602 / 8602 / 모든 인덱스 힌트의 사용을 무시 모든 인덱스 힌트의 사용을 무시 8755 / 8755 / 모든 잠금 힌트를 무시모든 잠금 힌트를 무시 8722 / 8722 / 모든 종류의 힌트모든 종류의 힌트 (OPTION(OPTION 절에서 절에서

사용되는 힌트들사용되는 힌트들 ) ) 무시무시

Page 21: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

차 례차 례

문제 해결 기법 문제 해결 기법 프로필러가 뭘까프로필러가 뭘까 ?? 추적 만들기추적 만들기 추적 분석하기추적 분석하기 추적 플래그 사용하기추적 플래그 사용하기 추적 재생하기추적 재생하기

Page 22: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

추적 재생 추적 재생 Stpe by stepStpe by step 한꺼번에 한꺼번에 (( 부하 걸기부하 걸기 )) 실제로 수행실제로 수행 db context / login, db context / login,

user context/ user context/ password/ permission password/ permission 등이 맞아야 제대로 등이 맞아야 제대로 재생재생

Page 23: SQL Server 2000  세미나 Profiler 를 이용한 문제해결

추적 재생추적 재생 SQLProfilerTSQL_RepSQLProfilerTSQL_Rep

lay lay 템플릿 사용템플릿 사용 재생 결과를 표시 재생 결과를 표시 : : 안 안

하면 재생 속도 더 하면 재생 속도 더 빠르다빠르다

추적 파일 추적 파일 / / 추적 추적 테이블 모두 재생 가능테이블 모두 재생 가능