Contador da Sessão de Bloqueio

Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.TabularDatabase.BlockedSessionsNumber (UnitMonitor)

O monitor alertará quando o número de sessões que estão bloqueadas por mais tempo do que a configuração WaitMinutes definida exceder o limite configurado.

Knowledge Base article:

Resumo

O monitor alertará se o número de sessões bloqueadas por mais tempo do que a configuração WaitMinutes definida exceder o limite configurado. O bloqueio ocorre quando uma sessão mantém um bloqueio em um recurso específico e outra sessão tenta obter um tipo de bloqueio conflitante no mesmo recurso. O bloqueio é uma característica inevitável de qualquer sistema de gerenciamento de banco de dados com simultaneidade baseada em bloqueio. No entanto, um alto nível de bloqueio pode ocasionar problemas de desempenho, portanto, um administrador pode usar esse monitor para saber quando essa condição ocorrer por mais tempo do que o WaitMinutes definido para um número de sessões maior do que o limite configurado.

Causas

O bloqueio pode ocorrer por vários motivos que são esperados, mas também pode ocorrer em cenários em que ele pode ser amenizado sem perda de funcionalidade correspondente necessária pelo aplicativo que está consumindo dados.

Resoluções

A resolução de problemas de bloqueio em um servidor exige o conhecimento da carga de trabalho, dos requisitos e dos usuários, que um administrador deve considerar ao decidir sobre o curso correto para correção. A solução de problemas de bloqueio pode incluir várias possíveis ações, incluindo, mas não se limitando, ao seguinte:

Externo

Configurar propriedades do servidor no Analysis Services

Documentação TechNet para os Contadores de Desempenho do SSAS

Guia de Desempenho Multidimensional do SSAS

Parâmetros Substituíveis

Nome

Descrição

Valor padrão

Habilitado

Habilita ou desabilita o fluxo de trabalho

Sim

Gerar Alertas

Define se o fluxo de trabalho gera um Alerta

Sim

Intervalo em Segundos

O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho.

900

Número de amostras

O Estado da Integridade mudará se o número de violações do limite for maior ou igual ao Número Mínimo de Violações.

4

Hora da Sincronização

A hora da sincronização especificada usando um formato de 24 horas. Pode ser omitido.

 

Limite Crítico

O Estado da Integridade mudará quando o número de sessões bloqueadas exceder o limite.

10

Tempo Limite (segundos)

Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha.

300

Minutos de espera

O parâmetro Minutos de Espera define o tempo de espera mínimo para a sessão ser considerada pelo monitor.

1

Element properties:

TargetMicrosoft.SQLServer.2014.AnalysisServices.TabularDatabase
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.AnalysisServices.MonitorType.Database.BlockedSessionsNumber
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2014: Contador da Sessão de Bloqueio excedido
{1} sessões estão bloqueadas por mais do que {0} min, excedendo o limite configurado para esse alerta.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.TabularDatabase.BlockedSessionsNumber" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.TabularDatabase" TypeID="Microsoft.SQLServer.2014.AnalysisServices.MonitorType.Database.BlockedSessionsNumber" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.TabularDatabase.BlockedSessionsNumber.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='WaitTime']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='BlockedSPIDCount']$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance']/ServiceName$</ServiceName>
<ConnectionString>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance']/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Database"]/DatabaseName$</DatabaseName>
<Threshold>10</Threshold>
<SampleCount>4</SampleCount>
<WaitMinutes>1</WaitMinutes>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>