관리되는 데이터베이스 개체 모니터링 및 문제 해결

적용 대상:SQL Server

이 항목에서는 SQL Server에서 실행되는 관리되는 데이터베이스 개체 및 어셈블리를 모니터링하고 문제를 해결하는 데 사용할 수 있는 도구에 대한 정보를 제공합니다.

프로파일러 추적 이벤트

SQL Server는 데이터베이스 엔진에서 발생하는 이벤트를 모니터링하는 SQL 추적 및 이벤트 알림을 제공합니다. SQL Trace는 지정된 이벤트를 기록하여 성능 문제 해결, 데이터베이스 작업 감사, 테스트 환경에 대한 샘플 데이터 수집, Transact-SQL 문 및 저장 프로시저 디버그 및 성능 분석 도구에 대한 데이터 수집을 지원합니다. 자세한 내용은 SQL 추적확장 이벤트를 참조하세요.

이벤트 설명
Assembly Load 이벤트 클래스 어셈블리 부하 요청(성공 및 실패)을 모니터링하는 데 사용됩니다.
SQL:BatchStarting 이벤트 클래스, SQL:BatchCompleted 이벤트 클래스 시작 또는 완료된 Transact-SQL 일괄 처리에 대한 정보를 제공합니다.
SP:Starting 이벤트 클래스, SP:Completed 이벤트 클래스 Transact-SQL 저장 프로시저의 실행을 모니터링하는 데 사용됩니다.
SQL:StmtStarting 이벤트 클래스, SQL:StmtCompleted 이벤트 클래스 CLR 및 Transact-SQL 루틴의 실행을 모니터링하는 데 사용됩니다.

성능 카운터

SQL Server는 시스템 모니터에서 SQL Server 인스턴스를 실행하는 컴퓨터의 활동을 모니터링하는 데 사용할 수 있는 개체 및 카운터를 제공합니다. 개체는 SQL Server 잠금 또는 Windows 프로세스와 같은 모든 SQL Server 리소스입니다. 각 개체에는 모니터링할 개체의 다양한 측면을 결정하는 하나 이상의 카운터가 포함되어 있습니다. 자세한 내용은 SQL Server 개체 사용을 참조하세요.

Object 설명
SQL Server, CLR 개체 CLR 실행에 소요된 총 시간입니다.

Windows 시스템 모니터(PERFMON.EXE) 카운터

PERFMON.EXE(Windows 시스템 모니터) 도구에는 CLR 통합 애플리케이션을 모니터링하는 데 사용할 수 있는 몇 가지 성능 카운터가 있습니다. .NET CLR 성능 카운터는 "sqlservr" 프로세스 이름으로 필터링하여 현재 실행 중인 CLR 통합 애플리케이션을 추적할 수 있습니다.

성능 개체 설명
SqlServer:CLR 서버에 대한 CPU 통계를 제공합니다.
.NET CLR 예외 초당 예외 수를 추적합니다.
.NET CLR Loading 서버에 로드된 AppDomains 및 어셈블리에 대한 정보를 제공합니다.
.NET CLR 메모리 CLR 메모리 사용량에 대한 정보를 제공합니다. 메모리 사용량이 너무 커지면 이 개체를 사용하여 경고에 플래그를 지정할 수 있습니다.
.NET Data Provider for SQL Server 초당 연결 및 연결 끊기 수를 추적합니다. 이 개체를 사용하면 데이터베이스 작업의 수준을 모니터링할 수 있습니다.

카탈로그 뷰

카탈로그 뷰는 SQL Server 데이터베이스 엔진에서 사용하는 정보를 반환합니다. 카탈로그 뷰는 카탈로그 메타데이터에 대한 가장 일반적인 인터페이스이며 이 정보의 사용자 지정된 형식을 가져오고, 변환하고, 표시하는 가장 효율적인 방법을 제공하기 때문에 카탈로그 뷰를 사용하는 것이 좋습니다. 사용자가 사용할 수 있는 모든 카탈로그 메타데이터는 카탈로그 뷰를 통해 노출됩니다. 자세한 내용은 카탈로그 뷰(Transact-SQL)를 참조하세요.

카탈로그 뷰 설명
sys.assemblies(Transact-SQL) 데이터베이스에 등록된 어셈블리에 대한 정보를 반환합니다.
sys.assembly_references(Transact-SQL) 다른 어셈블리를 참조하는 어셈블리를 식별합니다.
sys.assembly_modules(Transact-SQL) 어셈블리에 정의된 각 함수, 저장 프로시저 및 트리거에 대한 정보를 반환합니다.
sys.assembly_files(Transact-SQL) 데이터베이스에 등록된 어셈블리 파일에 대한 정보를 반환합니다.
sys.assembly_types(Transact-SQL) 어셈블리에서 정의한 UDT(사용자 정의 형식)를 식별합니다.
sys.module_assembly_usages(Transact-SQL) CLR 모듈이 정의된 어셈블리를 식별합니다.
sys.parameter_type_usages(Transact-SQL) 사용자 정의 형식인 매개 변수에 대한 정보를 반환합니다.
sys.server_assembly_modules(Transact-SQL) CLR 트리거가 정의된 어셈블리를 식별합니다.
sys.server_triggers(Transact-SQL) CLR 트리거를 포함하여 서버의 서버 수준 DDL 트리거를 식별합니다.
sys.type_assembly_usages(Transact-SQL) 사용자 정의 형식이 정의된 어셈블리를 식별합니다.
sys.types(Transact-SQL) 데이터베이스에 등록된 시스템 및 사용자 정의 형식을 반환합니다.

동적 관리 뷰

동적 관리 뷰 및 함수는 서버 인스턴스의 상태를 모니터링하고, 문제를 진단하고, 성능을 조정하는 데 사용할 수 있는 서버 상태 정보를 반환합니다. 자세한 내용은 동적 관리 뷰 및 함수(Transact-SQL)를 참조하세요.

DMV 설명
sys.dm_clr_appdomains(Transact-SQL) 서버의 각 애플리케이션 도메인에 대한 정보를 제공합니다.
sys.dm_clr_loaded_assemblies(Transact-SQL) 서버에 등록된 관리되는 각 어셈블리를 식별합니다.
sys.dm_clr_properties(Transact-SQL) 호스트된 CLR에 대한 정보를 반환합니다.
sys.dm_clr_tasks(Transact-SQL) 현재 실행 중인 모든 CLR 태스크를 식별합니다.
sys.dm_exec_cached_plans(Transact-SQL) 더 빠른 쿼리 실행을 위해 SQL Server에서 캐시하는 쿼리 실행 계획에 대한 정보를 반환합니다.
sys.dm_exec_query_stats(Transact-SQL) 캐시된 쿼리 계획에 대한 집계 성능 통계를 반환합니다.
sys.dm_exec_requests(Transact-SQL) SQL Server 내에서 실행되는 각 요청에 대한 정보를 반환합니다.
sys.dm_os_memory_clerks(Transact-SQL) CLR 메모리 클럭을 포함하여 SQL Server 인스턴스에서 현재 활성 상태인 모든 메모리 클럭을 반환합니다.

참고 항목

CLR(공용 언어 런타임) 통합 프로그래밍 개요