Conteggio di sessioni di blocco

Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockedSessionsNumber (UnitMonitor)

Il monitoraggio avvisa quando il numero di sessioni bloccate per un periodo di tempo più lungo dell'impostazione configurata di WaitMinutes supera la soglia configurata.

Knowledge Base article:

Riepilogo

Il monitoraggio avvisa se il numero di sessioni bloccate per un periodo di tempo più lungo dell'impostazione configurata di WaitMinutes supera la soglia configurata. Il blocco si verifica quando una sessione mantiene un blocco su una risorsa specifica e un'altra sessione prova ad acquisire un tipo di blocco in conflitto sulla stessa risorsa. Il blocco è una caratteristica inevitabile di qualsiasi sistema di gestione di database con concorrenza basata sul blocco. Un numero troppo elevato di blocchi può tuttavia causare problemi di prestazioni. Pertanto, l'amministratore può usare questo monitoraggio per rendersi conto di quando tale condizione si verifica per un periodo di tempo più lungo dell'impostazione configurata di WaitMinutes per un numero di sessioni superiore alla soglia configurata.

Cause

Un blocco può verificarsi per diversi motivi previsti ma può anche verificarsi in scenari in cui può essere ottimizzato senza nessuna perdita delle funzionalità corrispondenti richieste dall'applicazione che utilizza i dati.

Soluzioni

La risoluzione dei problemi di blocco in un server richiede la conoscenza del carico di lavoro, dei requisiti e degli utenti che l'amministratore deve considerare per la scelta di una linea d'azione appropriata per la soluzione. La risoluzione dei problemi di blocco potrebbe includere diverse azioni potenziali, tra le quali ad esempio:

Risorse esterne

Configurare le proprietà del server in Analysis Services

Guida alle prestazioni multidimensionali di SSAS

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro

Genera avvisi

Definisce se il flusso di lavoro genera un avviso

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

900

Numero di campioni

Lo stato di integrità cambia se il numero di violazioni di soglia è superiore o uguale al numero minimo di violazioni.

4

Ora di sincronizzazione

Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa.

 

Soglia critica

Lo stato di integrità cambia quando il numero di sessioni bloccate supera la soglia.

10

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

300

Minuti di attesa

Il parametro Minuti di attesa definisce il tempo di attesa minimo prima che la sessione venga presa in considerazione dal monitoraggio.

1

Element properties:

TargetMicrosoft.SQLServer.2008.AnalysisServices.MultidimensionalDatabase
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.AnalysisServices.MonitorType.Database.BlockedSessionsNumber
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2008: conteggio di sessioni di blocco superato
{1} sessioni sono bloccate per più di {0} min, superando la soglia configurata per questo avviso.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockedSessionsNumber" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.MultidimensionalDatabase" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Database.BlockedSessionsNumber" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Database.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.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>10</Threshold>
<SampleCount>4</SampleCount>
<WaitMinutes>1</WaitMinutes>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>