eG Monitoring
 

Measures reported by MSSQLALockTest

A lock is used to “lock” some data so that only one user/session may update that particular data. Locks exist to prevent two or more users from updating the same exact piece of data at the same exact time.

Though locking helps maintain the integrity of data, it can adversely impact user experience. This can happen when users end up waiting for a long time to access data that is locked by another user/session. Another condition that can significantly degrade SSAS performance is a deadlock. This is a situation in which two or more transactions are waiting for one another to give up locks.

To promptly detect and resolve such lock waits and deadlocks, administrators must closely monitor the locking activity on SSAS. This can be achieved using the MSSQLALockTest!

This test monitors the locking activity on an SSAS instance, and promptly captures deadlock situations and abnormal lock waits.

Outputs of the test : One set of results for the SSAS server being monitored.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Lock_waits Indicates the rate of lock waits. Number/Sec These are lock requests that could not be given immediate lock grants and were put in a wait state. A low value is desired for this measure.
Total_deadlock Indicates the total number of deadlocks detected. Number Ideally, the value of this measure should be 0.

If this measure reports a high value, you may want to consider using Dynamic Management Views (DMVs) to get a complete list of deadlocks. You must have system administrator permissions on the Analysis Services instance to query a DMV.

  • Consider disabling proactive caching.
  • Consider accessing database snapshot on isolation mode.
  • Setup extended events trace to monitor deadlocks.
  • Use SQL Server Profiler and then analyze the trace offline.
  • Avoid processing at peak hours to avoid query and processing collisions.
Current_locks Indicates the current number of locked objects. Number A low value is desired for this measure.
Current_latch_waits Indicates the current number of threads waiting for a latch. Number A latch is a short-term synchronization object that ensures data integrity on objects in SSAS memory. A latch wait is a delay associated with the latch, and is often caused by the I/O system not keeping up with requests so it is taking a long time to get pages from disk into memory.

Since latch waits can adversely impact user experience with SSAS, the value of this measure should be 0 ideally.
Current_lock_waits Indicates the number of clients currently waiting for a lock. Number The value 0 is desired for this measure.