Skip to main content

Microstrategy Dashboard performance improvements steps

Microstrategy  Dashboard performance improvements steps:

Many times, causes of poor performance can be simplified to specific components.
To troubleshoot performance issues, users must identify these components, then make the appropriate modifications to the environment and/or to the MicroStrategy dashboard to reduce bottlenecks.

Dashboard execution stages can be represented below:


MicroStrategy Intelligence Server

When an end user makes a Document Execution Request through any client (a web browser via MicroStrategy Web, the MicroStrategy Desktop/Developer client, the MicroStrategy Mobile app, or the MicroStrategy Office client), the request is sent to the MicroStrategy Intelligence Server, which processes the request and prepares the response.

The MicroStrategy Intelligence Server will execute all children datasets on the dashboard by either generating SQL and running this against the data warehouse, or by fetching data from a cache. The Intelligence Server will then join all the dataset results into one master table, called the virtual dataset or master dataset, to store in memory. The master dataset includes the union of all attributes in the dataset report, as well as one column for each metric in the document.
After the master dataset has been assembled, the Intelligence Server will retrieve the design structure for the dashboard either by querying the metadata for the dashboard definition, or by fetching the definition from a cache. Subsequently, the Intelligence Server will then generate the appropriate response type for rendering the dashboard. For Office documents, dashboards executed in DHTML view modes, and Flash dashboards, the Intelligence Server will generate XML, and for PDF documents, the Intelligence Server will generate PDF. For Mobile dashboards, the Intelligence Server will generate a binary in addition to XML.
When the response generation is complete, the Intelligence Server will send the response to different components depending on which client the original Document Execution Request was initiated from. For requests made from a web browser via MicroStrategy Web, the MicroStrategy Mobile app, or the MicroStrategy Office client, the Intelligence Server will send the response to the MicroStrategy Web Server, the MicroStrategy Mobile Server, or the MicroStrategy Web Services Server respectively for further processing. For requests made from the MicroStrategy Desktop/Developer client, the Intelligence Server will send the response to the Desktop/Developer client directly without going through an additional server.
MicroStrategy Web Server
End users may render dashboards executed through MicroStrategy Web in DHTML view modes, Flash mode, or PDF. When the MicroStrategy Web Server receives the response from the Intelligence Server for one of these requests, it will transform the Intelligence Server response to the appropriate HTTP response suitable for displaying in the end user browser.
For dashboards executed in DHTML view modes, the Web Server will transform the Intelligence Server XML response to HTML. For Flash dashboards, the Web Server will first upload a Flash dashboard viewer component to the end user browser (called DashboardViewer.swf, by default located here on the Web Server machine: C:\Program Files (x86)\MicroStrategy\Web ASPx\swf\DashboardViewer.swf), then forward the Intelligence Server XML response to the DashboardViewer in order for the end user browser to render. For PDF documents, the Web Server will forward the Intelligence Server PDF response to the end user browser directly.
MicroStrategy Mobile and Web Services Servers
Dashboards executed through the MicroStrategy Mobile app must go through the MicroStrategy Mobile Server, and dashboards executed through the MicroStrategy Office Client must go through the MicroStrategy Web Services server.
For dashboards executed through Mobile, when the MicroStrategy Mobile Server receives the XML and binary response from the Intelligence Server, it will forward this response to the end user mobile client for further processing.
For dashboards executed through Office, when the MicroStrategy Web Services server receives the XML response from the Intelligence Server, it will forward this response to the end user Microsoft Office client for further processing.
The Performance Troubleshooting Cycle

The above chart illustrates the Performance Troubleshooting Cycle. The goal of the cycle is to improve performance by identifying which components are acting as bottlenecks, then making the appropriate modifications to these components specifically, the environment as a whole, or the dashboard itself.

Monitoring

The first step of the cycle is to quantify the performance by measuring the time spent in each of the components that are part of a Document Execution Request, as described in the preceding sections. The table below summarizes a few key modules that commonly consume the most amount of time during a dashboard execution:
MicroStrategy Component
Key Module

Intelligence Server
Query Execution
Data Preparation
XML generation
Web Server
Web processes

Network
Client
Client rendering
To measure the time spent in these components, refer to the following resources:

Intelligence Server
  • Query Execution - Reference MicroStrategy Product Documentation > System Administration Guide > Chapter 5for a complete list on how to monitor Job Execution and system usage
  • Data Preparation and XML Generation - KB30914: Overview of Profiling MicroStrategy Documents
Web Server
Client

Optimizing

After bottlenecks have been identified, certain component-level settings can be adjusted to optimize performance. However, since MicroStrategy deployments will typically rely on third-party components, several component-level settings may be outside the scope of MicroStrategy Technical Support but will nonetheless effect MicroStrategy performance. An example of this is an Intelligence Server may perform slowler on a machine with relatively fewer hardware resources (RAM, CPU speed, disk read/write speed, etc.) than a machine with more resources. As another example, an Intelligence Server may also perform slower on a machine with plentiful resources but many other processes running simultaneously in the background compared to a machine dedicated for just the Intelligence Server process. As a final example, an Intelligence Server and a Web Server may generate a document body quickly but a client browser may not be powerful enough to render this document in a short time period.
To adjust component-level settings specific to MicroStrategy, refer to the following resources:

Intelligence Server
Web Server
Client

Comments

  1. Very good points you wrote here..Great stuff...I think you've made some truly interesting points.Keep up the good work. Dashboard Reporting Software

    ReplyDelete

Post a Comment

Popular posts from this blog

Microstrategy Custom number formatting symbols

Custom number formatting symbols If none of the built-in number formats meet your needs, you can create your own custom format in the Number tab of the Format Cells dialog box. Select  Custom  as the Category and create the format using the number format symbols listed in the table below. Each custom format can have up to four optional sections, one each for: Positive numbers Negative numbers Zeros Text Each section is optional. Separate the sections by semicolons, as shown in the example below: #,###;(#,###);0;"Error: Entry must be numeric" For more examples, see  Custom number formatting examples . To jump to a section of the formatting symbol table, click one of the following: Numeric symbols Character/text symbols Date and time symbols Text color symbols Currency symbols Conditional symbols Numeric symbols For details on how numeric symbols apply to the Big Decimal data type, refer to the  Project Design Guide . ...

Apply or Pass-through functions in Microstrategy

Ap ply (Pass-Through) functions MSTR Apply functions provide access to functions or syntactic constructs that are not standard in MicroStrategy but are provided by various RDBMS systems.. Syntax common to Apply functions Apply Function Name   ("expression with placeholders", Arg1, Arg2, Arg3, …ArgN) where: Apply Function Name  – is a generic name used for the predefined pass-through functions described above expression with placeholders  – is the string describing the actual expression or syntax that the engine uses while generating the SQL and which is sent to the RDBMS. The placeholders are represented by #0, #1, and so on. "#" is a reserved character for MicroStrategy. Arg  – is an argument that replaces the parameter markers in the pattern. Arg1 replaces #0, Arg2 replaces #1, and so on. There are   five  pre-defined Apply functions to replace regular, predefined functions of the same type. For more details, cli...

Microstrategy document/dashboard applying selections as filters or slices

Applying selections as filters or slices In a Microstrategy Document the selections a user makes in a selector can either filter or slice the data in the target: Filtering means that the data for the current selection is calculated only when it is requested by the user. The selections are used to filter the underlying dataset before the metric values are aggregated at the level of the Grid/Graph that is displayed in the document. If the source attribute is not included in the Grid/Graph, the metric values from all the selected elements are aggregated and shown at the level specified in the Grid/Graph. All metric condition selectors (which filter metric values or ranks) and selectors that target other selectors filter data by default. You cannot change them to slicing selectors. Slicing means that the data for each available item in the selector is calculated in advance when the document is first displayed. Selections made while ...

Case functions Microstrategy

Ca se functions Microstrategy Case functions return specified data in a SQL query based on the evaluation of user-defined conditions. In general, a user specifies a list of conditions and corresponding return values. Case This function evaluates multiple expressions until a condition is determined to be true, then returns a corresponding value. If all conditions are false, a default value is returned.  Case  can be used for categorizing data based on multiple conditions. This is a single-value function. Syntax Case ( Condition1 ,  ReturnValue1 ,  Condition2 , ReturnValue2 ,...,  DefaultValue ) Example Case(([Total Revenue] < 300000), 0, ([Total Revenue] < 600000), 1, 2) sum(Case (Day@DESC in (“Sat”,”Sun”), Sales, 0) {~+} Sum(Case(Category@DESC In("Books","Electronics"),Revenue,0)){~+} CaseV (case vector) CaseV  evaluates a single metric and returns different values according to the results. It can be used to perfo...

MicroStrategy URL API Parameters

MicroStrategy URL Structure The following table summarizes the root URL structure used for every request to MicroStrategy Web. Environment Main Application URL Administration URL J2EE http://webserver/MicroStrategy/servlet/mstrWeb http://webserver/MicroStrategy/servlet/mstrWebAdmin .NET http://webserver/MicroStrategy/asp/Main.aspx http://webserver/MicroStrategy/asp/Admin.aspx Every request sent to MicroStrategy Web calls a central controller. Parameters are appended to  Main.aspx  or  mstrWeb  (in a .NET and J2EE environment, respectively) to indicate to the controller how the request should be internally forwarded and handled. The following examples show a URL for accessing a MicroStrategy folder when the user does not have an existing session. The URL contains not only the parameters needed to connect to MicroStrategy Web, but also the parameters needed to log on and create a session. J2EE environment: <a href="http:...

Predictive modelling in Data Science using Microstrategy

Creating a predictive modelling in MicroStrategy MicroStrategy Data Mining Services has been evolving to include more data mining algorithms and functionality. One key feature is MicroStrategy Developer’s Training Metric Wizard. The Training Metric Wizard can be used to create several different types of predictive models including linear and exponential regression, logistic regression, decision tree, cluster, time series, and association rules. Linear and exponential regression The linear regression data mining technique should be familiar to you if you have ever tried to extrapolate or interpolate data, tried to find the line that best fits a series of data points, or used Microsoft Excel’s LINEST or LOGEST functions. Regression analyzes the relationship between several predictive inputs, or independent variables, and a dependent variable that is to be predicted. Regression finds the line that best fits the data, with a minimum of error. For example, you have a dataset ...

Custom Tooltips in Microstrategy developer and Web

Custom Tooltips in Microstrategy developer and Web The following table describes the macros you can use to customize graph tooltips in both MicroStrategy Developer and MicroStrategy Web: Macro Information Displayed {&TOOLTIP} All relevant labels and values associated with a graph item. {&GROUPLABEL} Name of the graph item's category. This value is often the graph item's attribute element information, as attributes are commonly used as the categories of graph reports. {&SERIESLABEL} Name of the graph item’s series. This value is often the graph item's metric name information, as metrics are commonly used as the series of graph reports. {&VALUE} The value of a given data point. {&XVALUE} The X-value of a data point. Only applicable to Bubble charts and Scatter plots. {&YVALUE} The Y-value of a data point. Only applicable to Bubble charts and Scatter plots. {&ZVALUE} The Z-value of a data point. Only applicable to Bubble charts and Scatter plots. {...

Components of the MicroStrategy Engine

Components of the MicroStrategy Engine The MicroStrategy Engine consists of three engines:  • SQL Engine  • Query Engine  • Analytical Engine  These individual engines work together to fulfill report requests submitted by MicroStrategy that can be resolved by pure SQL alone.  The SQL Engine is responsible for generating optimized SQL and producing result sets that can be resolved by pure SQL alone. The Query Engine is responsible for executing the SQL generated by the SQL Engine.  The Analytical Engine is responsible for performing any calculation that cannot be resolved with SQL alone.

HTML image as a button that exports a grid on a document to Excel in MicroStrategy

HTML Image as a Button That Exports a Grid on a Document to Excel in MicroStrategy In MicroStrategy Web, it is possible to use an image as a button to export a grid on a document to Excel in MicroStrategy version 10.4 and later. This document provides the steps to accomplish the same.  The goal is to create an image link that is used to export the grid, like shown below: Document in Edit Mode Follow the steps below: 1. Create a Report Services Document 2. Make two grids with different attributes and metrics in each  3. Insert an HTML   container   (and not an image) and insert the script below. Make sure the Project name matches the given project and gridKey matches ( highlighted in bold in the script below). The code below is used for the first grid and button. Main things to watch are the  gridKey  values and the name of the element id which in the below code is  exportLink .   <a target="_blank" id="exportLink" href=""...

Microstrategy "Error type: Odbc error. Odbc operation attempted

 "Error type: Odbc error. Odbc operation attempted: SQLExecDirect. [HYT00:0: on SQLHANDLE] [MicroStrategy][ODBC Oracle Wire Protocol driver]Timeout expired" is shown when executing reports from Web When users are trying to execute some reports in MicroStrategy web in particular, they may receive the Error “SQL Generation Complete Index out of range” and “Timeout expired” error as shown below: Possible Causes: One possible cause is that the MicroStrategy Intelligence Server using a cached database connection that was already dropped by the RDBMS. To resolve this: Admin should delete the database connection caches and create a new DSNs in case they are sharing DSNs to connect to different databases. In addition, change the settings for the ‘Connection lifetime’ and the ‘Connection idle time out’.  Follow the steps below to perform the mentioned changes and verify the report after each step and some of the settings require i-server r...