보고서를 사용하여 성능 분석
업데이트: 2006년 7월 17일
Microsoft SQL Server Notification Services 성능을 분석할 경우 인스턴스와 해당 응용 프로그램이 실행되는 방법을 먼저 확인합니다. 이 정보를 얻으려면 응용 프로그램 스냅숏 및 관리 보고서를 사용하십시오.
- 응용 프로그램 스냅숏 보고서는 NSSnapshotApplications(Transact-SQL) 저장 프로시저에서 만듭니다. 예를 들어 이 보고서를 사용하여 생성자가 일정보다 늦게 실행되고 있는지, 데이터 제거(vacuum) 프로세스에 의해 데이터가 제거되고 있는지 알 수 있습니다.
- 관리 보고서는 NSAdministrationHistory(Transact-SQL) 저장 프로시저에서 만듭니다. 예를 들어 이 보고서를 사용하여 실패한 알림 일괄 처리를 찾아볼 수 있습니다.
이러한 보고서는 응용 프로그램이 예상대로 실행되는지 여부를 확인하도록 도와 줍니다. 응용 프로그램이 예상대로 실행되지 않을 경우 아래 방법을 사용하여 성능 저하를 분석합니다.
성능 저하 분석
Notification Services 응용 프로그램 분석은 생성자 퀀텀에서 시작합니다. 생성자는 Notification Services의 핵심 요소이며 인스턴스가 실행되고 있을 때 퀀텀이라는 정기적인 간격에 따라 발생됩니다. ADF(응용 프로그램 정의 파일) 내에서 퀀텀의 기간을 지정합니다. 생성자는 퀀텀 기간을 사용하여 ADF에 정의된 규칙의 발생 빈도를 결정합니다.
성능 문제를 분석할 경우 일반적으로 예상대로 완료되지 않은 퀀텀 기간을 조사한 다음 해당 퀀텀 동안 발생한 내용을 확인합니다. 다음 방법을 사용하여 분석할 퀀텀을 찾고 해당 퀀텀에 대한 세부 정보를 얻은 다음 인스턴스와 응용 프로그램 정보를 분석합니다.
퀀텀 기간에 대한 자세한 내용은 구독 처리 아키텍처 및 생성자 퀀텀 기간 지정을 참조하십시오.
1단계: 원하는 퀀텀 결정
Notification Services 응용 프로그램 분석의 첫 번째 단계는 일련의 관련 퀀텀 기간을 식별하는 것입니다. 성능 저하와 관련이 있는 퀀텀 기간에는 다음 중 하나의 특징이 있습니다.
- 퀀텀이 예상보다 오래 실행됩니다. 여러 요소가 원인이 될 수 있으므로 응용 프로그램을 자세히 분석하여 그 원인을 확인해야 합니다.
- 퀀텀이 실패로 표시됩니다. 계획대로 규칙이 실행되지 않은 경우 등의 여러 가지 이유로 퀀텀 기간에 오류가 발생할 수 있습니다.
- 퀀텀을 건너뛰었습니다. 생성자가 현재 데이터를 계속 처리하도록 하기 위해 필요한 경우 생성자가 퀀텀 기간을 건너뛰도록 구성할 수 있습니다. 건너뛴 퀀텀은 일반적으로 장기 실행되는 퀀텀 기간과 같은 부작용을 가져옵니다.
장기 실행되는 퀀텀 기간, 실패한 퀀텀 기간 또는 건너뛴 퀀텀 기간을 식별할 수 있도록 Notification Services는 퀀텀 성능, 퀀텀 실행 시간, 퀀텀 실패 및 건너뛴 퀀텀 보고서를 제공합니다.
- 퀀텀 성능 보고서는 퀀텀 실행 시간에 따라 퀀텀을 분류합니다. 이렇게 하면 퀀텀이 일반적으로 실행되는 기간을 결정하는 데 도움이 됩니다. NSQuantumPerformance(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
- 퀀텀 실행 시간 보고서에는 지정한 시간보다 오래 실행되고 있는 퀀텀이 포함되어 있습니다. 퀀텀 ID를 사용하면 퀀텀을 자세히 분석할 수 있습니다. NSQuantumExecutionTime(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
- 퀀텀 실패 보고서는 실패한 생성자 퀀텀에 대한 정보를 제공합니다. 퀀텀에서 규칙 발생과 같은 필요한 처리를 완료할 수 없을 경우 이 퀀텀은 실패하게 됩니다. NSQuantumFailures(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
- 건너뛴 퀀텀 보고서는 건너뛴 생성자 퀀텀에 대한 정보를 제공합니다. 생성자가 지연되거나 퀀텀 제한이 ADF에 설정되어 있는 경우 퀀텀을 건너뛸 수 있습니다. NSQuantumsSkipped(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
시나리오:NSQuantumPerformance 저장 프로시저를 사용하여 퀀텀 188이 다른 모든 퀀텀처럼 두 번 실행되었는지 확인할 수 있습니다. 다음 단계는 해당 퀀텀 동안 발생한 내용을 확인하는 것입니다.
2단계: 자세한 퀀텀 정보 분석
원하는 퀀텀을 찾았으면 해당 퀀텀 중에 발생한 내용을 확인합니다. 퀀텀에 대한 정보를 얻으려면 퀀텀 정보 보고서와 퀀텀 목록 보고서를 사용합니다.
- 퀀텀 정보 보고서는 지정한 퀀텀에 대한 자세한 정보를 제공합니다. 이 보고서를 사용하여 장기 실행 퀀텀 문제를 해결하거나 퀀텀 처리를 분석합니다. NSQuantumDetails(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
- 퀀텀 목록 보고서는 지정된 기간 동안 처리된 퀀텀에 대한 정보를 제공하고 퀀텀을 실행된 순서대로 표시합니다. NSQuantumList(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
시나리오: 위의 1단계에서 설명한 시나리오에 이어 퀀텀 188에 대해 NSQuantumDetails 저장 프로시저를 실행합니다. 해당 보고서에 따라 규칙 발생 중 하나가 퀀텀 시간의 90%를 소비했는지 확인합니다. 다음 단계는 모든 퀀텀에 대한 이벤트 및 알림 일괄 처리를 찾아봅니다. 이 보고서를 사용하여 이벤트 일괄 처리 60 및 알림 일괄 처리 40이 이 퀀텀 중에 처리되었음을 알 수 있습니다.
3단계: 자세한 응용 프로그램 데이터 분석
퀀텀 기간을 분석한 후 퀀텀 내의 특정 이벤트, 구독 또는 알림에 초점을 맞출 수 있습니다. 이벤트 일괄 처리 정보 보고서, 예약된 구독 정보 보고서, 알림 일괄 처리 정보 보고서 등은 응용 프로그램 데이터에 대한 자세한 정보를 제공합니다.
- 이벤트 일괄 처리 정보보고서는 이벤트 클래스의 특정 이벤트 일괄 처리에 대한 정보를 제공합니다. 이 보고서는 이벤트 일괄 처리에 대한 요약 정보를 표시하고 해당 일괄 처리에 있는 각각의 이벤트에 대한 정보를 표시합니다. NSEventBatchDetails(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다. 이벤트 일괄 처리 ID를 가져오려면 NSEventBatchList(Transact-SQL) 저장 프로시저를 사용합니다.
- 예약 구독 정보보고서는 구독 클래스에 있는 모든 구독에 대한 정보를 제공합니다. NSScheduledSubscriptionDetails(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
- 조건 작업을 사용할 경우 구독 조건 정보 보고서는 조건 기반 구독을 평가하는 데 사용되는 쿼리를 반환합니다. NSSubscriptionConditionInformation(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다.
- 알림 일괄 처리 정보 보고서는 알림 클래스의 특정 알림 일괄 처리에 대한 정보를 제공합니다. 이 보고서는 알림 일괄 처리에 대한 요약 정보를 표시하고 해당 일괄 처리에 있는 각각의 알림에 대한 정보를 표시합니다. NSNotificationBatchDetails(Transact-SQL) 저장 프로시저에서 이 보고서를 생성합니다. 알림 일괄 처리 ID를 가져오려면 NSNotificationBatchList(Transact-SQL) 저장 프로시저를 사용합니다.
- 진단 또는 스냅숏보고서를 사용하여 다각적인 정보 수준에서 응용 프로그램을 확인할 수도 있습니다.
시나리오: 퀀텀 188 분석을 끝내려면 먼저 이벤트 일괄 처리 60에 대해 NSEventBatchDetails 저장 프로시저를 실행하여 이 퀀텀 동안에 많은 이벤트가 수집되었는지 확인합니다. NSDiagnosticEventClass를 사용하여 이 이벤트 일괄 처리에 대부분의 이벤트 클래스에 보다 훨씬 더 많은 이벤트가 있는지 확인합니다. 이는 일반적인 기간보다 오래 실행되는 퀀텀의 실행 시간이 응용 프로그램 문제를 나타냄을 보여 주는 것이 아니라 쿼리 최적화 및 인덱스 추가와 같은 응용 프로그램 최적화가 성능 향상을 위해 필요함을 보여 줍니다.
참고 항목
개념
Notification Services 성능 보고서
Notification Services 성능 및 활동 모니터링