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 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:...

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...

Like / Contains operator in Tableau

Contains (Like) operator in Tableau SInce there is no like operator in Tableau it provides CONTAINS operator.  Little different syntax is there but not too complex. Syntax for contains is:  Below is the example for using CONTAINS operator in a calculated field in Tableau. IF (CONTAINS([campaign_name],"Intent")) OR (CONTAINS([campaign_name_derived],"Intent")) THEN "Yes"   ELSE "No" END  

Prompt-in-prompt (Nested prompt) feature in a FreeForm SQL Report

Prompt-in-prompt (Nested prompt) feature in a FreeForm SQL Report In some business scenarios, it is required to implement prompt-in-prompt (nested prompt) feature to use the answer of one prompt to qualify on the elements of another prompt in Freefrom SQL reports in MicroStrategy Developer 9.4.x-10.x. The following procedure describes how to achieve prompt-in-prompt in a Freeform SQL report in MicroStrategy Tutorial project: Create a new filter, select Add an Attribute qualification and choose the highest level attribute Country. Make sure to Qualify On: Elements. Click Prompt as the image shown below. Accept all the default values without any changes in the popped up window after clicking on "Prompt" as shown below. Save the filter as "Country Filter". Click "Prompt", choose "Use a filter to reduce the number of elements" option and select Country Filter created in last step, as shown below. Save the filter as "Region Filter...

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...

Prompt-in-prompt(Nested Prompts) in Microstrategy

Prompt-in-prompt(Nested Prompts) in  Microstrategy Nested prompts allows you to create one prompt based on the other and other bases on another, nested prompts allows us to prompt the highest level(Like year) to middle level(like Quarter, then to the low level(like Month). Here you can see how to  create a 3-level deep nested prompt that will prompt the user to select a year, then a quarter within that year, then a month within that quarter. Prompt-in-prompt is a feature in which the answer to one prompt is used to define another prompt. This feature is only implemented for element list prompts . The following procedure describes how to achieve this: Create the highest level filter. This is a filter which contains a prompt on an attribute element list. Create a filter on the attribute "Year." Click "prompt on attribute element list" and click "Next" through the rest of the screens to accept the default values. Do not set any additio...
Star schemas and aggregate (or summary) fact tables Aggregate tables can further improve query performance by reducing the number of rows over which higher-level metrics must be aggregated.  However, the use of aggregate tables with dimension tables is not a valid physical modeling strategy. Whenever aggregation is performed over fact data, it is a general requirement that tables joined to the fact table must be at the same attribute level or at a higher level. If the auxiliary table is at a lower level, fact rows will be replicated prior to aggregation and this will result in inflated metric values (also known as "multiple counting"). With the above Time dimension table, a fact table at the level of Day functions correctly because there is exactly one row in DIM_TIME for each day. To aggregate the facts to the level of Quarter, it is valid to join the fact table to the dimension table and group by the quarter ID from the dimension table. Sql select DT...

RunningSum calculation only on the metric subtotal in MicroStrategy

RunningSum calculation only on the metric subtotal in MicroStrategy Here are the series of steps to setup report objects in which metrics and subtotals so only the  subtotal field  will contain the  RunningSum  and the  regular metric values  will be  standard sum values . 1) Create Metric 1 which is the sum of the fact that is to be in the columns. 2) Create Metric2 as the RunningSum of Metric1.  NOTE:  The  sortby  parameter for the RunningSum should be set to whichever attribute you want the report sorted by. 3) Create Metric3 as Metric1 + (Metric2 x 0) 4) Create a new subtotal called "Max" which is defined as Max() 5) On the Subtotals/Aggregation tab for Metric 3, set the Total subtotal function to be "Max" and select the check box for "Allow Smart Metric" 6) Create the desired report and place the 3 metrics on the report.  NOTE:  Only Metric3 is required on the gri...