O monitor alerta quando o tamanho da fila do pool de consulta para a instância do SSAS for maior do que o limite configurado.
O monitor alerta quando o tamanho da fila de trabalho do pool de consulta excede o limite configurado. Colocar em fila pode indicar que algumas solicitações não podem ser executadas devido a espera de um thread livre do pool, mesmo se os trabalhos executam a si próprios de forma rápida e retornem.
O esgotamento dos threads disponíveis do pool de consulta pode ocorrer por vários motivos, incluindo a definição incorreta das configurações do servidor afetando o pool ou a demanda anormalmente alta de usuários ou trabalhos agendados na instância.
Resolver esse alerta exige que os administradores compreendam e considerem vários fatores, incluindo, mas não limitado a, requisitos da carga de trabalho, programações do usuário e de trabalho, outros processos agendados no computador servidor e os recursos disponíveis. As ações para solucionar a condição quando o comprimento da fila de trabalho do pool de consulta excede o limite configurado podem incluir várias das seguintes ações:
Modifique as definições da configuração do pool depois de consultar o Guia de Desempenho Multidimensional do SSAS para aumentar os threads disponíveis no pool de consulta. Isso não é aconselhável sem uma consideração muito cuidadosa e teste ou consultoria do suporte da Microsoft.
Diminua a carga de trabalho na instância do SSAS ao reagendar trabalhos, modificar o design do banco de dados, restringir as consultas do usuário ou dividir a carga de trabalho para mover alguns trabalhos para outros servidores.
Aumente o número de threads disponíveis no pool aumentando o número de núcleos disponíveis no servidor, que aumenta dinamicamente o tamanho do pool.
Ajuste os limites configurados para o alerta para evitar a condição.
Desabilite totalmente o monitor se a fila do trabalho do pool de consulta não for uma preocupação no servidor.
Configurar Propriedades do Servidor no Analysis Services
Guia de Desempenho Multidimensional do SSAS
Nome | Descrição | Valor padrão |
Habilitado | Habilita ou desabilita o fluxo de trabalho | True |
Gerar Alertas | Define se o fluxo de trabalho gera um Alerta | True |
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 muda 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 de Aviso | O Estado da Integridade muda se o contador de desempenho do Analysis Services excede o limite. | 0 |
Target | Microsoft.SQLServer.2008.AnalysisServices.Instance | ||
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.PerformanceCounterThreads | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.QueryPoolQueueLength" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.PerformanceCounterThreads" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.QueryPoolQueueLength.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/Context/Value$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<PerformanceCounterName>Query pool job queue length</PerformanceCounterName>
<CounterName>Query pool job queue length</CounterName>
<Threshold>0</Threshold>
<SampleCount>4</SampleCount>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>