SQL Server Profiler
적용 대상: SQL Server Azure SQL Managed Instance
SQL Server Profiler는 추적을 작성하고 관리하며 추적 결과를 분석 및 재생하는 인터페이스입니다. 이벤트는 나중에 분석하거나 문제를 진단할 때, 혹은 특정 일련의 단계를 재생하는 데 사용할 수 있는 추적 파일에 저장됩니다.
Important
- SQL 추적 및 SQL Server Profiler는 사용되지 않습니다. Microsoft SQL Server 추적 및 재생 개체를 포함한 Microsoft.SqlServer.Management.Trace 네임스페이스도 사용되지 않습니다. 그러나 Analysis Services 워크로드가 지원됩니다.
- SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.
- 대신 확장 이벤트를 사용합니다. 확장 이벤트에 대한 자세한 내용은 빠른 시작: SQL Server의 확장 이벤트 및 SSMS XEvent Profiler를 참조하세요.
참고 항목
SQL Server Profiler에서 Azure SQL 데이터베이스에 연결하려고 하면 다음과 같은 오류 메시지가 잘못 생성됩니다.
- SQL Server에 대해 추적을 실행하려면 sysadmin 고정 서버 역할의 멤버이거나 ALTER TRACE 권한이 있어야 합니다.
메시지는 SQL Server Profiler에서 Azure SQL 데이터베이스를 지원하지 않는다고 설명해야 합니다.
프로파일러는 어디에 있나요?
SQL Server Profiler 확장을 사용하여 Azure Data Studio 내에서 또는 SQL Server Management Studio 내에서 Profiler를 시작할 수 있습니다.
추적 데이터 캡처 및 재생
다음 표에서는 SQL Server에서 추적 데이터를 캡처하고 재생하는 데 사용할 수 있는 권장 기능을 보여 줍니다.
대상 기능 워크로드 | 관계형 엔진 | Analysis Services |
---|---|---|
추적 캡처 | SQL Server Management Studio의 확장 이벤트 그래픽 사용자 인터페이스 | SQL Server Profiler |
추적 재생 | Distributed Replay | SQL Server Profiler |
SQL Server Profiler 사용
Microsoft SQL Server Profiler는 데이터베이스 엔진 또는 Analysis Services를 모니터링하기 위한 그래픽 사용자 인터페이스를 제공합니다. 각 이벤트에 대한 데이터를 캡처하고 파일 또는 테이블에 저장하여 나중에 분석할 수 있습니다. 예를 들어 프로덕션 환경을 모니터링하여 어느 저장 프로시저가 너무 늦게 실행되어 성능을 떨어뜨리고 있는지 볼 수 있습니다. SQL Server Profiler는 다음과 같은 작업에 사용됩니다.
문제 쿼리를 단계별로 실행하여 문제의 원인을 찾습니다.
실행이 느린 쿼리를 찾고 진단
문제가 발생하는 일련의 Transact-SQL 문 포착 그런 다음, 저장된 추적으로 문제를 진단할 수 있는 테스트 서버에서 문제를 복제할 수 있습니다.
SQL Server의 성능을 모니터링하여 작업 튜닝. 데이터베이스 작업에 맞게 물리적 데이터베이스 디자인을 튜닝하는 방법은 Database Engine Tuning Advisor를 참조하세요.
성능 카운터를 상관 관계를 지정하여 문제를 진단합니다.
또한 SQL Server Profiler는 SQL Server instance에서 수행되는 작업 감사를 지원합니다. 보안 관리자가 나중에 검토할 수 있는 보안 관련 작업을 기록합니다.
SQL Server Profiler 개념
SQL Server Profiler를 사용하려면 도구가 작동하는 방식을 설명하는 용어를 이해해야 합니다.
참고 항목
SQL 추적을 이해하면 SQL Server Profiler를 사용할 때 도움이 됩니다. 자세한 내용은 SQL Trace을(를) 참조하세요.
이벤트
이벤트는 SQL Server 데이터베이스 엔진 instance에서 발생하는 동작입니다. 다음은 이러한 예입니다.
- 로그인 연결, 실패 및 연결 끊김
- Transact-SQL
SELECT
,INSERT
,UPDATE
및DELETE
문 - RPC(원격 프로시저 호출) 배치 상태입니다.
- 저장 프로시저의 시작 또는 끝입니다.
- 저장 프로시저 내의 문의 시작 또는 끝입니다.
- SQL 일괄 처리의 시작 또는 끝입니다.
- SQL 서버 오류 로그에 대한 기록.
- 데이터베이스 개체에서 잠금을 획득하거나 해제합니다.
- 열린 커서
- 보안 권한 검사.
추적은 이벤트에 의해 생성된 모든 데이터를 단일 행에 표시합니다. 이 행은 이벤트를 자세히 설명하는 데이터 열로 구분됩니다.
EventClass
이벤트 클래스는 추적할 수 있는 이벤트 유형입니다. 이벤트 클래스에는 이벤트가 보고할 수 있는 모든 데이터가 포함됩니다. 다음은 이벤트 클래스의 예입니다.
- SQL:BatchCompleted
- Audit Login
- Audit Logout
- Lock Acquired
- 잠금 해제됨
EventCategory
이벤트 범주는 SQL Server Profiler 내에서 이벤트가 그룹화되는 방식을 정의합니다. 예를 들어 모든 잠금 이벤트 클래스는 Locks 이벤트 범주 내에서 그룹화됩니다. 그러나 이벤트 범주는 SQL Server Profiler내에서만 존재합니다. 이 용어는 엔진 이벤트가 그룹화되는 방식을 반영하지 않습니다.
DataColumn
데이터 열은 추적에 캡처된 이벤트 클래스의 특성입니다. 이벤트 클래스는 수집할 수 있는 데이터 형식을 결정하므로 모든 데이터 열이 모든 이벤트 클래스에 적용되는 것은 아닙니다. 예를 들어 Lock: Acquired 이벤트 클래스를 캡처하는 추적에서 BinaryData 데이터 열에는 잠긴 페이지 ID 또는 행의 값이 포함되지만 Integer Data 데이터 열에는 캡처되는 이벤트 클래스에 적용되지 않기 때문에 값이 포함되지 않습니다.
템플릿
템플릿은 추적에 대한 기본 구성을 정의합니다. 특히 SQL Server Profiler를 사용하여 모니터링하려는 이벤트 클래스가 포함됩니다. 예를 들어 이벤트, 데이터 열 및 필터를 지정하는 템플릿을 만들 수 있습니다. 템플릿은 실행되지 않고 확장명이 .tdf인 파일로 저장됩니다. 저장되면 템플릿은 템플릿 기반 추적이 시작될 때 캡처되는 추적 데이터를 제어합니다.
Trace
추적은 선택한 이벤트 클래스, 데이터 열 및 필터에 기초하여 데이터를 캡처합니다. 예를 들어 예외 오류를 모니터링하는 추적을 만들 수 있습니다. 이렇게 하려면 Exception 이벤트 클래스와 Error, State 및 Severity 데이터 열을 선택합니다. 추적 결과에서 의미 있는 데이터를 제공하려면 이 3열의 데이터를 수집해야 합니다. 그런 다음, 이러한 방식으로 구성된 추적을 실행하고 서버에서 모든 Exception 이벤트에 대한 데이터를 수집할 수 있습니다. 추적 데이터를 즉시 분석에 사용하거나 저장한 후 나중에 분석할 수 있습니다. 나중에 추적을 재생할 수 있지만 Exception 이벤트와 같은 특정 이벤트는 재생할 수 없습니다. 추적을 템플릿으로 저장하여 유사한 추적을 빌드할 수도 있습니다.
SQL Server는 SQL Server instance를 추적하는 두 가지 방법을 제공합니다. SQL Server Profiler를 사용하여 추적하거나 시스템 저장 프로시저를 사용하여 추적할 수 있습니다.
필터
추적 또는 템플릿을 만들 때 이벤트가 수집하는 데이터를 필터링할 조건을 정의할 수 있습니다. 추적이 너무 커지는 것을 막기 위해 이벤트 데이터의 하위 집합만 수집되도록 필터링할 수 있습니다. 예를 들어 추적에서 Microsoft Windows 사용자 이름을 특정 사용자로 제한하면 출력 데이터가 줄어듭니다.
필터를 설정하지 않으면 추적 출력은 선택한 이벤트 클래스의 모든 이벤트를 반환합니다.
SQL Server Profiler Tasks
작업 설명 | 문서 |
---|---|
SQL Server에서 특정 이벤트를 모니터링하기 위해 제공하는 미리 정의된 템플릿과 추적을 재생하는 데 필요한 사용 권한을 나열합니다. | SQL Server Profiler 템플릿 및 권한 |
SQL Server Profiler를 실행하는 방법을 설명합니다. | SQL Server Profiler 실행에 필요한 권한 |
추적을 만드는 방법에 대해 설명합니다. | 추적 만들기(SQL Server Profiler) |
추적 파일에 대한 이벤트 및 데이터 열을 지정하는 방법에 대해 설명합니다. | 추적 파일에 대해 이벤트 및 데이터 열 지정(SQL Server Profiler) |
파일에 추적 결과를 저장하는 방법을 설명합니다. | 추적 결과를 파일에 저장(SQL Server Profiler) |
테이블에 추적 결과를 저장하는 방법을 설명합니다. | 테이블에 추적 결과 저장 (SQL Server Profiler) |
추적에서 이벤트를 필터링하는 방법에 대해 설명합니다. | 추적에서의 이벤트 필터링(SQL Server Profiler) |
필터 정보를 보는 방법을 설명합니다. | 필터 정보 보기(SQL Server Profiler) |
필터를 수정하는 방법을 설명합니다. | 필터 수정 (SQL Server Profiler) |
추적 파일에 대한 최대 파일 크기를 설정하는 방법을 설명합니다(SQL Server Profiler). | 추적 파일에 대한 최대 파일 크기 설정(SQL 및 기타) |
추적 테이블의 최대 테이블 크기 설정하는 방법을 설명합니다. | 추적 테이블의 최대 테이블 크기 설정(SQL Server Profiler) |
추적을 시작하는 방법에 대해 설명합니다. | 추적 시작 |
서버 연결 후 자동으로 추적 시작하는 방법에 대해서 설명합니다. | 서버 연결 후 자동으로 추적 시작(SQL Server Profiler) |
이벤트 시작 시간을 기준으로 이벤트 필터링하는 방법을 설명합니다. | 이벤트 시작 시간 기반의 이벤트 필터링(SQL Server Profiler) |
이벤트 종료 시간을 기준으로 이벤트 필터링하는 방법을 설명합니다. | 이벤트 종료 시간 기반의 이벤트 필터링(SQL Server Profiler) |
추적에서 SPID(서버 프로세스 ID) 필터링하는 방법을 설명합니다. | 추적에서 SPID(서버 프로세스 ID) 필터링(SQL 및 기타) |
추적을 일시 중지하는 방법에 대해 설명합니다. | 추적 일시 중지 (SQL Server Profiler) |
추적을 중단하는 방법에 대해 설명합니다. | 추적 중지 (SQL Server Profiler) |
추적을 일시 중지하거나 중지했다가 다시 실행하는 방법에 대해 설명합니다. | 일시 중지 또는 중지 후 추적 실행 (SQL Server Profiler) |
추적 창을 지우는 방법을 설명합니다. | 추적 창 지우기 (SQL Server Profiler) |
추적 창을 닫는 방법을 설명합니다. | 추적 창 닫기(SQL Server Profiler) |
추적에서 정의 기본값 설정하는 방법을 설명합니다. | 추적 정의 기본값 설정 (SQL Server Profiler) |
추적에서 기본값이 나타나도록 설정하는 방법을 설명합니다. | 추적 표시 기본값 설정 (SQL Server Profiler) |
추적 파일을 여는 방법을 설명합니다. | 추적 파일 열기(SQL Server Profiler) |
추적 테이블을 여는 방법에 대해 설명합니다. | 추적 테이블 열기 (SQL Server Profiler) |
추적 테이블을 재생하는 방법에 대해 설명합니다. | 추적 테이블 재생(SQL Server Profiler) |
추적 테이블을 재생하는 방법에 대해 설명합니다. | 추적 파일 재생(SQL Server Profiler) |
한 번에 하나의 이벤트를 재생하는 방법을 설명합니다. | 단일 이벤트를 한 번에 하나씩 재생(SQL Server Profiler) |
중단점으로 재생하는 방법을 설명합니다. | 중단점으로 재생 (SQL Server Profiler) |
커서까지 재생하는 방법을 설명합니다. | 커서까지 재생(SQL Server Profiler) |
Transact-SQL 스크립트를 재생하는 방법에 대해 설명합니다. | Transact-SQL 스크립트 재생 (SQL Server Profiler) |
추적 템플릿을 만드는 방법에 대해 설명합니다. | 추적 템플릿 만들기(SQL Server Profiler) |
추적 템플릿을 수정하는 방법에 대해 설명합니다. | 추적 템플릿 수정(SQL Server Profiler) |
전역 추적 옵션을 설정하는 방법을 설명합니다. | 전역 추적 옵션 설정(SQL Server Profiler) |
추적 중 값 또는 데이터 열을 찾는 방법을 설명합니다. | 추적 중 값 또는 데이터 열 찾기(SQL Server Profiler) |
실행 중인 추적에서 템플릿을 생성하는 방법을 설명합니다. | 실행 중인 추적으로부터 템플릿 파생(SQL Server Profiler) |
추적 파일 또는 추적 테이블에서 템플릿을 파생시키는 방법을 설명합니다. | 추적 파일 또는 추적 테이블에서 템플릿 파생(SQL Server Profiler) |
추적 실행을 위한 Transact-SQL 스크립트를 만드는 방법에 대해 설명합니다. | 추적을 실행하기 위한 Transact-SQL 스크립트 만들기 (SQL Server Profiler) |
추적 템플릿을 가져오는 방법에 대해 설명합니다. | 추적 템플릿 내보내기 (SQL Server Profiler) |
추적 템플릿을 가져오는 방법에 대해 설명합니다. | 추적 템플릿 가져오기 (SQL Server Profiler) |
추적에서 스크립트를 내보내는 방법을 설명합니다. | 추적에서 스크립트 내보내기 (SQL Server Profiler) |
Windows 성능 로그 데이터와 추적의 상관 관계를 설명합니다. | 추적과 Windows 성능 로그 데이터의 상관 관계 (SQL Server Profiler) |
추적에 표시된 열을 구성하는 방법에 대해 설명합니다. | 표시된 열 추적으로 구성(SQL Server Profiler) |
SQL Server Profiler를 시작하는 방법을 설명합니다. | SQL Server Profiler 시작 |
추적 및 추적 템플릿을 저장하는 방법에 대해 설명합니다. | 추적 및 추적 템플릿 저장 |
추적 템플릿을 수정하는 방법을 설명합니다. | 추적 템플릿 수정 |
Windows 성능 로그 데이터와 추적의 상관 관계를 설명합니다. | Windows 성능 로그 데이터와 추적의 상관 관계 지정 |
SQL Server Profiler를 사용하여 추적을 보고 분석하는 방법에 대해 설명합니다. | SQL Server Profiler를 사용하여 추적 보기 및 분석 |
SQL Server Profiler를 사용하여 교착 상태를 분석하는 방법을 알아봅니다. | SQL Server Profiler를 사용하여 교착 상태 분석 |
SQL Server Profiler에서 Showplan 결과로 쿼리를 분석하는 방법을 알아봅니다. | SQL Server Profiler에서 SHOWPLAN Results로 쿼리 분석 |
SQL Server Profiler로 추적을 필터링하는 방법에 대해 설명합니다. | SQL Server Profiler로 추적을 필터링 |
SQL Server Profiler의 재생 기능을 사용하는 방법을 설명합니다. | 추적 재생 |
SQL Server Profiler에 대한 상황에 맞는 도움말 문서가 나열되어 있습니다. | SQL Server 프로파일러 F1 도움말 |
SQL Server Profiler에서 성능 및 활동을 모니터링하는 데 사용하는 시스템 저장 프로시저를 나열합니다. | SQL Server Profiler 저장 프로시저 (Transact-SQL) |
확장 이벤트 대 SQL Server Profiler
확장 이벤트 및 SQL Server Profiler는 SQL Server 성능 모니터링 및 문제 해결을 위한 도구입니다. SQL Server Profiler는 더 이상 사용되지 않으며 Analysis Services에서만 사용해야 합니다. 확장 이벤트는 SQL Server Profiler를 대체하며 다른 곳에서는 사용할 수 없는 고급 문제 해결 기능을 제공합니다. SQL Server Profiler에서 확장 이벤트로 마이그레이션하는 데 도움이 되는 주요 차이점이 여기에 나와 있습니다.
확장 이벤트 도구
확장 이벤트는 SQL Server에 기본 제공되는 가볍고 확장성이 뛰어나며 유연한 이벤트 처리 시스템입니다.
확장 이벤트 세션은 일반적으로 SQL 추적 및 SQL Server Profiler보다 적은 리소스를 사용하므로 프로덕션 환경에 더 적합합니다. 확장 이벤트는 최신 버전의 SQL에서 사용할 수 있는 이벤트 캡처를 지원합니다.
반면 SQL 추적/SQL Server Profiler에서 사용할 수 있는 이벤트는 SQL Server 2008R2 이하 버전에서 사용할 수 있는 기능으로 제한됩니다. 확장 이벤트는 뛰어난 필터링 기능, 더 작은 기본 페이로드 및 Profiler에서 제공되지 않는 기능(예: 메모리 내 및 집계 대상 및 다중 대상 지원)을 제공합니다.
확장 이벤트에 대한 자세한 내용은 확장 이벤트를 참조하세요.
SQL Server Profiler 도구
SQL Server Profiler는 SQL 추적을 사용하여 SQL Server 또는 Analysis Services 인스턴스에 대한 작업을 캡처하는 그래픽 사용자 인터페이스입니다.
SQL Server Profiler는 잘못 구성된 경우 리소스 집약적일 수 있으며 특히 프로덕션 서버에서 사용되는 경우 서버 성능에 영향을 줍니다. 빠른 추적을 지원하는 기본 제공 템플릿이 있습니다.
요약하자면 SQL Server Profiler는 많은 사용자에게 친숙한 이전 도구이지만 확장 이벤트는 더 나은 성능, 보다 자세한 이벤트 정보 및 다른 곳에서는 사용할 수 없는 SQL Server 인스턴스의 문제 해결 및 모니터링 기능을 제공하는 최신 대안입니다. Profiler보다 장점이 있으므로 새로운 추적 및 모니터링 작업에 확장 이벤트를 사용하는 것이 좋습니다.