SQL Sentry allows you to continuously monitor and troubleshoot SQL Server Analysis Services (SSAS) issues in a Multidimensional or Tabular mode. The two primary types of activities that occur in SSAS are querying and processing. Processing involves creating and updating data, while the storage engine queries the file system to retrieve data from the SSAS caches with baselining and alerting functionality and partition usage totals. For more information about usage totals, see the SSAS Usage Totals topic. Common issues you may encounter in SSAS include the following:
- VertiPaq memory limits and paging policy. For more information about Vertipaq, see the Analyzing VertiPaq Memory Usage in SSAS Tabular in SQL Sentry article.
- Bottlenecking during DAX and MDX queries.
In SQL Sentry, you can monitor the CPU, Memory, Disk, and Network servers resources to determine what's causing an issue.
Similar to the SQL Server Performance Analysis Dashboard, in SQL Sentry the Windows Performance metrics are on the left and Analysis Services are on the right. The color coding on the Memory, CPU, and Network graphs provide a way to see what is responsible for different types of traffic.
|SSAS Activity||Allows correlation between rows transferred and Formula and Storage Engine threads. It's important to identify if your main bottleneck is in the Formula Engine or Storage Engine.|
|SSAS General||Monitors all of the activity for you continuously at a fraction of the overhead a Profiler Trace tends to impart. Average Time is a unique chart with average time metrics calculated by SQL Sentry. These counters are not available through Windows Performance Counters. Discover what the instance is spending the most time on with this chart. It divides the information into more detail for you:
|SSAS Memory||Memory monitoring is very different between Multidimensional and Tabular modes, and different counters are available depending on the mode. Specific to the Tabular mode, the Mem Usage chart allows you to see memory counters, and the VertiPaq Memory Limit allows you to see where memory pressure might be causing performance issues. The chart also displays the VertiPaq paging policy that is important for monitoring the performance metrics. For more information about the VertiPaq paging policy, see the Analyzing VertiPaq Memory Usage in SSAS Tabular in SQL Sentry article.|
|SSAS Storage||To determine whether the disk system is a bottleneck for your SSAS instance, you need to verify that SSAS is accessing the disk system. Use this chart to correlate storage counters to other activity on your system.|
SQL Server Analysis Services (SSAS) is a multi-threaded storage engine with detailed query analysis and data processing. SQL Sentry performs queries in the Storage and Formula engines to aggregate and calculate data. The two most common types of queries performed include:
- MDX Queries—Cumulative MDX workloads across the server, cell-by-cell operations, and potentially high-impact operations in the Multidimensional mode.
- DAX Queries—Shows the storage engine time per query, internal VertiPaq cache matches and scans, and it allows you to identify possible bottlenecks in the Tabular mode.
Memory in SSAS is stored in KB, and is both shrinkable and non-shrinkable. For more information about memory in SSAS, see the Analysis Services Memory Limits article. The following are three groups of metrics that monitor memory in the SQL Sentry Dashboard:
- Mem Usage (MB)—Total memory SSAS is using on the server. Right-click to choose the Low and High limit. You can also show by category to see the portions of the non-shrinkable memory being used.
- Cache Lookups—Shows memory performance in the Flat cache and Calculation cache on the formula engine and in the Dimension cache and Measure Group cache on the storage engine.
- Cache Activity—Indicates the memory pressure on the server. Shrink counters indicated that you're exceeding your defined memory limit.
SQL Sentry provides the popular Event Calendar feature that many are familiar with from SQL Sentry. The SQL Sentry Outlook-style Event Calendar view provides visibility into specific events occurring over a range of time. With the Event Calendar, you can see the entire chain of events and often identify what led up to a specific performance issue.
This view shows commands and queries (including text, start and end times, as well as duration) that were executed against SSAS. Events are color-coded to indicate things such as failures. Processing can be a bottleneck in SSAS, and with the Event Calendar, you can see an XLMA command that performed processing and quickly visualizes the other queries that were executing at the same time to identify what might have been impacted by that processing to better understand the performance hits.
If you've set up alerts for certain conditions, such as the SSAS Storage Engine Processing Pool Job Queuing and those alerts are triggered, they appear on the Event Calendar next to the other events for that time period.
Note: If you have performance issues with Processing, confirm the following:
- Check scheduled jobs and activities that may exist for that time frame. Move them to a less busy time, if possible, to mitigate resource contention.
- Verify that you're using the correct Processing option. For example, ProcessFull refreshes everything whether there is new data or not. While this option may be necessary at times, you may not need to use it for all cases. Use a less resource-intensive Processing option when possible. Additional Information: For additional information on available options, see the Processing Options and Settings (Analysis Services) Microsoft article.
- Confirm you are using partitions that provide additional performance benefits that minimize activity to what you need.
For a further breakdown of SSAS activity on a query-by-query basis in SQL Sentry, see the Top Commands tab. You'll see whether your query experienced more Formula Engine or Storage Engine time, and you can expand the view for a complete breakdown by Measure Group, Partition, Aggregation, and Dimension.
Alerts allow the user to define global actions for the most common issues across your environment.
|SQL Server: Blocking SQL||A block was detected that was subject to the Minimum Block Duration set for the Blocking SQL Source. View the block on the Event Calendar or the Blocking SQL tab.|
|SQL Server: Blocking SQL: Duration Threshold Max||Block exceeded the maximum duration threshold.|
|SQL Server: Blocking SQL: Output Content Match||A match condition was found in the output content of a block.|
|SQL Server: Deadlock||A deadlock was detected. View the deadlock on the Event Calendar or the Deadlocks tab.|
|SQL Server: Deadlock: Output Content Match||A match condition was found in the output content for a deadlock.|
|Index: Defragmentation Completed||Index Defragmentation completed|
|Index: Defragmentation Failure||Index Defragmentation failed.|
|Index: Defragmentation Started||Index Defragmentation started.|
|Analysis Services: Top Commands: Completed||An Analysis Services command (MDX or XMLA) completed. Note: It is highly recommended that a ruleset be used with this condition to avoid excessive logging.|
|Analysis Services: Top Commands: Duration Threshold Max||The duration threshold maximum was exceeded for an Analysis Services command (MDX or XMLA).|
|Analysis Services: Top Commands Error||An Analysis Services command (MDX or XMLA) completed with an error.|
|Analysis Services: Top Commands: Output Content Match||A match condition was found in a completed Analysis Services command (MDX or XMLA).|
|SQL Server: Top SQL: Completed||Top SQL event completed. Note: It is highly recommended that a ruleset be used with this condition to avoid excessive logging.|
|SQL Server: Top SQL: Duration Threshold Max||Top SQL event exceeded the maximum duration threshold.|
|SQL Server: Top SQL: Duration Threshold Min||Top SQL event didn't exceed the minimum duration threshold.|
|SQL Server: Top SQL: Error||Top SQL event completed with an error.|
|SQL Server: Top SQL: Output Content Match||A match condition was found in the content of a completed Top SQL event.|
|Virtual Machine: VM Moved||The Virtual Machine moved.|
|Analysis Services: Offline||Analysis Services is offline or otherwise inaccessible.|
|Analysis Services: Online||Analysis Services is online and accessible.|
|SQL Availability Group Failover||The SQL Availability Group failed over.|
|SQL Availability Replica Healthy||The SQL Availability Replica is healthy.|
|SQL Availability Replica Unhealthy||The SQL Availability Replica is unhealthy.|
|SQL Server Agent: Offline||SQL Server Agent is offline or otherwise inaccessible.|
|SQL Server Agent: Online||SQL Server Agent is online and accessible.|
|SQL Server Cluster Failover||SQL Server cluster failed over.|
|SQL Server: Offline||SQL Server is offline or otherwise inaccessible.|
|SQL Server: Online||SQL Server is online and accessible.|
|Windows Computer: Offline||Windows Computer is offline or otherwise inaccessible.|
|Windows Computer: Online||Windows Computer is online and accessible.|