일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 다중 컬럼 NOT IN
- 백준 1034 램프 파이썬
- SQL SERVER MIGRATION
- 프로그래머스 순위 파이썬
- 램프 파이썬
- 순위 파이썬
- 백준 1043 거짓말 파이썬
- 백준 11054.가장 긴 바이토닉 부분 수열
- 백준 2146 다리 만들기
- 프로그래머스 순위
- 백준 1167 트리의 지름 파이썬
- 백준 1238 파티 파이썬
- 다리 만들기 파이썬
- 반도체 설계 파이썬
- 프로그래머스 가장 긴 팰린드롬
- 프로그래머스 등굣길
- 베스트앨범 파이썬
- 프로그래머스 베스트앨범
- 게임 개발 파이썬
- 프로그래머스 여행경로
- 등굣길 파이썬
- SQL SERVER 장비교체
- 트리의 지름 파이썬
- 역사 파이썬
- SWEA
- 가장 긴 팰린드롬 파이썬
- 가장 긴 바이토닉 부분 수열 파이썬
- 백준 1516 게임 개발
- 백준 1613 역사
- 백준 2352 반도체 설계 파이썬
Archives
- Today
- Total
공부, 기록
트레이스, 프로파일러 본문
트레이스
트레이스(추적) : 실행되는 SQL문의 실행 통계를 세션별로 모아서 만든 파일
※ 트레이스의 아키텍처 : 이벤트가 발생하면 각 트레이스에서 설정한 필터를 거친 후 FILE 또는 SMO 형식으로 저장
트레이스의 주요 용어
이름 | 설명 |
이벤트 | 데이터베이스 엔진 인스턴스 내에서 동작이 발생했음을 의미 |
데이터 열 | 이벤트의 특성 |
이벤트 클래스 | 추적할 수 있는 이벤트의 유형. 이벤트에서 보고할 수 있는 모든 데이터 열을 포함 |
이벤트 범주 | 서로 연관성이 있는 이벤트 클래스들의 그룹 |
추적(명사) | DB 엔진에서 반환한 이벤트 및 데이터의 모음 |
추적(동사) | 인스턴스의 이벤트를 수집 및 모니터링 하기 위한 동작 |
Tracedefinition | 추적 중에 수집되는 이벤트의 유형을 식별하는 이벤트 클래스. 데이터 열 및 필터 모음 |
필터 | 추적에서 이벤트를 제한하는 조건 |
추적 테이블 | 프로파일러에서 추적을 테이블에 저장할 때 생성되는 테이블 |
주요 데이터 열 반환 설명
이름 | 설명 |
ApplicationName | SQL Server 인스턴스에 연결한 클라이언트 애플리케이션의 이름 |
Binary Data | 추적에서 캡처된 이벤트 클래스에 따라 달라지는 이진 값 |
ClientProcessID | 클라이언트 애플리케이션이 실행 중인 프로세스에 대해 호스트 컴퓨터가 할당한 ID |
CPU | 이벤트에 의해 사용된 CPU 시간 (밀리 초 단위) |
Duration | 이벤트의 기간 (마이크로 초 단위) |
EndTime | 이벤트가 종료된 시간 |
EventClass | 캡처된 이벤트 클래스 유형 |
LoginName | 사용자 로그인 이름 (EX GFZ\minjae93) |
NTUserName | Windows 사용자 이름 |
ObjectType | 이벤트와 관련된 개체 유형을 나타내는 값 (sysobject의 유형 열과 일치) |
Reads | 이벤트에 대해 서버에서 수행한 논리적 디스크 읽기 작업의 수 |
SPID | SQL Server가 클라이언트와 연결된 프로세스에 할당한 SPID |
StartTime | 이벤트가 시작된 시간 (사용 가능한 경우) |
TextData | 추적에서 캡처된 이벤트 클래스에 따라 달라지는 텍스트 값 (쿼리문) |
Writes | 이벤트에 대해 서버에서 수행한 물리적 디스크 쓰기 작업의 수 |
Host Name | 클라이언트를 실행 중인 컴퓨터의 이름 |
Database | 주어진 연결에 대한 현재 데이트베이스의 ID |
트레이스 최적화 방안
- CMD를 활용
- 자주 발생하는 이벤트를 포함하지 않는다.
- 관련 데이터를 제공하는 이벤트만 수집
- 중복 데이터를 수집하지 않는다.
- 추적 정의에 필터를 사용
성능에 크게 영향을 미치는 이벤트를 추적해야 할 경우
- 단기간 추적 실행
- 추적 결과의 크기 제한
- 반환되는 이벤트의 수를 제한
※ 프로파일러 사용시에 종료 시간, 파일 저장 시 파일 크기를 반드시 적용해주기.
SQL Server Profiler
프로파일러 : 추적을 작성 및 관리하고 추적 결과를 분석 및 재생하기 위한 인터페이스. 이벤트는 추적 파일에 저장되며 이 파일은 나중에 분석되거나 문제를 진단할 때 특정 단계를 다시 수행하기 위해 사용할 수 있다.
주 사용 용도
- 문제가 발생한 원인을 찾기 위해 문제 쿼리 실행
- 실행이 느린 쿼리를 찾고 진단
- 문제가 발생한 일련의 T-SQL문 포착 → 저장된 트레이스를 사용하여 문제를 진단할 수 있는 테스트 서버에서 문제 복제 가능
- SQL Server의 성능을 모니터링하여 튜닝.
- 문제 진단을 위해 성능 카운터의 상관 관계 지정
문제점 확인 예시
- 인덱스 관련 문제점
추적 결과에서 Reads와 Duration의 값이 많이 크면 인덱스와 관련된 문제일 가능성이 있음 - 블로킹 (Lock들의 경합)
Reads나 CPU는 작으면서 Duration 값이 많이 크다면 블로킹일 가능성이 있음.
CMD를 사용하여 프로파일러 실행 시 주요 명령어
Name | description |
/? | profiler 인수의 구문 요약 정보를 표시합니다 |
/U login_id |
SQL Server 인증을 위한 사용자 로그인 ID입니다. 로그인 ID는 대/소문자를 구분합니다. |
/P password | SQL Server 인증을 위한 암호를 지정합니다. 사용자가 원하는 대로 지정할 수 있습니다. |
/E | 현재 사용자의 자격 증명으로 Windows 인증을 사용하는 연결을 지정합니다. |
/S sql_server_name | SQL Server인스턴스를 지정합니다. |
/A analysis_services_server_name | Analysis Services 인스턴스를 지정합니다. |
/D database | 연결에 사용할 데이터베이스 이름을 지정합니다. (디폴트 값 : 사용자의 기본 db. ex : dbo) |
/B "trace_table_name" | 프로파일러를 시작할 때 로드할 추적 테이블을 지정합니다. |
/T "template_name" | 추적을 구성하기 위해 로드할 템플릿을 지정합니다. 파일 확장명(.tdf)을 포함X |
/F "filename" | 프로파일러를 시작할 때 로드할 추적 파일의 경로와 이름을 지정합니다. |
/O "filename" | 추적 결과를 기록할 파일의 경로와 이름을 지정합니다. |
/M " MM-DD-YY hh:mm:ss " | 추적을 중지할 날짜와 시간을 지정합니다. |
/R | 추적 파일 롤오버를 사용합니다. |
/Z file_size | 추적 파일 크기(MB)를 지정합니다. (디폴트 : 5MB) |
'공부 > DATABASE' 카테고리의 다른 글
[R&D]MySql (0) | 2022.03.16 |
---|---|
[R&D]SQL Server (0) | 2022.03.16 |
SQL SERVER PERFORMANCE COUNT (0) | 2022.03.16 |
[MSSQL/SQL SERVER] DB 이관 기록(Migration) (0) | 2022.02.05 |
[NoSQL] Document, MongoDB (0) | 2021.07.03 |