하나 이상의 세션이 구성된 임계값보다 오래 차단된 경우 모니터가 알림을 제공합니다.
하나 이상의 SSAS 테이블 형식 세션이 구성된 임계값보다 오래 차단된 경우 모니터가 알림을 제공합니다. 한 세션에서는 특정 리소스를 잠그고 다른 세션에서는 동일한 리소스에 대해 충돌하는 잠금 유형을 얻으려는 경우 차단이 발생합니다. 차단은 잠금 기반 동시성을 가진 모든 DBMS(데이터베이스 관리 시스템)의 불가피한 특성입니다. 하지만 너무 많은 차단으로 인해 성능 문제가 발생할 수 있으므로 관리자는 이 모니터를 사용하여 구성된 임계값보다 오래 이러한 상태가 발생하는 경우를 인식할 수 있습니다.
차단은 예상되는 여러 가지 이유로 발생할 수 있으나 데이터를 사용하는 응용 프로그램에 필요한 기능을 손실하지 않으면서 개선 가능한 시나리오에서 발생할 수도 있습니다.
서버의 차단 문제를 해결하려면 작업, 요구 사항 및 사용자를 알아야 하며 관리자는 올바른 수정 조치를 결정할 시기를 고려해야 합니다. 차단 문제 수정에는 다음과 같은 여러 가능한 조치가 포함될 수 있습니다(다음으로 제한되지 않음).
SSAS 구성 설정을 조정하여 실행 중인 쿼리의 우선 순위를 변경합니다. 이러한 종류의 구성 변경은 보통 또는 높은 수준으로 비즈니스에 영향을 미치는 상태에서 사전 테스트 및 영향에 대한 완전한 이해 없이 프로덕션 데이터베이스에서 수행되지 않아야 합니다. 관리자는 Microsoft 지원의 직접적인 상담 및 지시 없이 이러한 변경을 수행하기 전에 SSAS 다차원 성능 가이드를 철저히 검토해야 합니다. 그렇지 않으면 서버 성능이 개선되지 않고 부정적인 영향을 받을 수 있습니다.
차단 세션을 식별하여 수동으로 종료합니다. 제품의 알려진 문제가 장기 실행 쿼리 취소를 차단할 수 있습니다.
효율을 높이기 위해 SSAS 다차원 성능 가이드에 제안된 주요 모범 사례를 기반으로 데이터베이스 디자인을 다시 검토합니다. 잠금 수준을 낮추고, 엄격하게 차단이 발생하지 않을 시간을 예약하는 디자인 또는 구성 변경을 통해 서버의 장기 실행 차단 작업을 개선하거나, 장기 차단 시나리오로 이어질 성능 병목 현상이 발생할 위치를 판별하는 성능 카운터 검토를 통해 필요하다고 결정한 대로 추가 리소스를 서버에 추가할 수 있습니다.
알림이 발생하지 않도록 구성된 임계값을 늘립니다.
서버에서 차단이 별로 중요하지 않을 경우 모니터를 완전히 사용하지 않도록 설정합니다.
이름 | 설명 | 기본값 |
사용 | 워크플로를 사용하거나 사용하지 않도록 설정합니다. | 예 |
알림 생성 | 워크플로의 알림 생성 여부 정의 | 예 |
간격(초) | 워크플로를 실행하는 반복 시간 간격(초)입니다. | 900 |
동기화 시간 | 24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다. |
|
경고 임계값(분) | 하나 이상의 세션이 임계값보다 오래 차단되는 경우 상태가 변경됩니다. | 1 |
시간 제한(초) | 워크플로를 닫고 실패로 표시하기 전에 워크플로를 실행할 수 있는 시간을 지정합니다. | 300 |
Target | Microsoft.SQLServer.2008.AnalysisServices.MultidimensionalDatabase | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Database.BlockingDuration | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockingDuration" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.MultidimensionalDatabase" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Database.BlockingDuration" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Database.BlockingDuration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='WaitTime']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance']/ServiceName$</ServiceName>
<ConnectionString>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance']/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Database"]/DatabaseName$</DatabaseName>
<Threshold>1</Threshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>