관리되는 데이터베이스 개체 모니터링 및 문제 해결
적용 대상: 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) 카운터
Windows 시스템 모니터(PERFMON.EXE) 도구에는 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 인스턴스에서 현재 활성 상태인 모든 메모리 클럭을 반환합니다. |