Skip to main content

Dashboard performance troubleshooting in MicroStrategy 10



 Dashboard performance troubleshooting in MicroStrategy 10.x

Details of Document Execution Request, introduce the Performance Troubleshooting Cycle, and present links to other resources with detailed steps for troubleshooting specific components that may affect performance.

To begin, the architecture for dashboard execution is diagrammed here:




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 first analyze all the templates, then determine which datasets the metrics are from, extend these datasets with runtime relations if necessary, aggregate the metric to desired level, join these datasets on the common attributes, and generate the final view.

After final result for the grid has been assembled, the Intelligence Server will retrieve the design structure for the dashboard either by querying the metadata for the dashboard definition. 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.

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 ComponentKey Module
Intelligence ServerQuery Execution
Data Preparation
XML generation
Web ServerWeb processes

Network
ClientClient rendering

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

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


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:

Comments

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

Multi-Table Data Import(MTDI) from one or more supported data sources

Multi-Table Data Import(MTDI) from one or more supported data sources In MicroStrategy Analytics Enterprise Web 10 onewards, users can now simultaneously import two or more tables from one or more supported data sources, this feature is called Multi-Table Data Import (MTDI) which has been renamed as Super Cubes in MSTR 2019 (Does it sound like multisourcing for all the users without admin help?) Currently, all connectors in MicroStrategy Web 10 except " OLAP " and " Search Engine Indices " support Multi-Table Data Import. Users are able to add multiple tables/files when doing data import from single connector, as shown below: Users are also able to combine multiple tables/files from different sources and store them into one single Intelligent Cube, as shown below:

Image URL Attribute type HTML Tag in Microstartegy

Creating and attribute with a form with Image URL Image URL Attribute: <img src='images\Folder\UBD\nstudios\N/A.png' height='120' width='163'> <img src='images\Folder\UBD\nstudios\BCU.png' height='120' width='163'> <img src='images\Folder\UBD\nstudios\IUM.png' height='120' width='163'> <img src='images\Folder\UBD\nstudios\WAR.png' height='120' width='163'> <img src='images\Folder\UBD\nstudios\TVN.png' height='120' width='163'> <img src='images\Folder\UBD\nstudios\N/A.png' height='120' width='163'> <IMG src="../images/ 1.png"  height=80 width=400> Concat("../images/Dash/", Id, ".png") ApplySimple(" '<img src=../images/Dash/'+ltrim(str(#0))+'.png height=120 width=120>' ", Id) IF((StudioName = "OURS"), "Ours...

Create a transaction services photo uploader

Create a transaction services photo uploader   1.  Create a new table "photo_upload" in Tutorial warehouse database (the default location: C:\Program Files\MicroStrategy\Tutorial Reporting\TUTORIAL_DATA_7200.mdb), as shown below:    2. The 'photo_upload' table has to be pre-populated with *exactly* 10 rows of data, the values for the 'ID' column should be 1-10 and the values for the 'uploaded' column should all be 0 3.  In MicroStrategy Desktop, create a freeform report "R1" based on the new table "photo_upload" in Tutorial data created at step 1, as shown below:   SELECT Location, Description, ID, uploaded, numbers FROM PHOTO_UPLOAD 4.  Create another table for transaction insert SQL. Make sure to create an 'autonumber' type ID as primary key for this table, or auto_increment ID for different DBs.                     5. Create...

OLAP features in Microstrategy

OLAP features in Microstrategy MSTR  OLAP Services uses Intelligent Cube Technology—an in-memory version of report data that can 1 About MicroStrategy OLAP Services  can be manipulated by the MicroStrategy Analytical Engine. MicroStrategy Desktop, Web, and Office users can slice and dice data in reports within Intelligent Cubes without having to re-execute SQL against the data warehouse.  Many of the standard OLAP features that MicroStrategy provides out of the box, such as: Page-by Pivoting Sorting Subtotals Banding Aliasing Outline mode Thresholds etc.. With an OLAP Services license, user can perform additional OLAP analysis, using the following features:  Displaying data on the fly: dynamic aggregation, page  Creating metrics on-the-fly: derived metrics, Defining attribute elements on-the-fly: derived elements,  Filtering data on the fly: view filters and metric filters,  Importing data as an Intelligent Cube

MicroStrategy VLDB properties with Hive

 Recommended VLDB Properties for use of  MicroStrategy 9 with Hive 0.7x The recommended VLDB optimizations for Hive 0.7x are listed below. These values are set by default when the "Hive 0.7x" database object is used (set at  Configuration Managers > Database Instances > Database Instance > Database connection type ) Selected Default VLDB Properties for Hive 0.7x  VLDB Category  VLDB Property Setting  Value   Tables  Fallback Table Type  Permanent Table  Tables  Maximum SQL Passes Before FallBack   0 (no threshold)  Tables  Maximum Tables in FROM Clause Before FallBack  0 (no threshold)  Tables  Drop Temp Table Method  Drop after final pass   Tables  Table Creation Type  Implicit Table  Query Optimizations   Sub Query Type   Use Temporary Table, falling back to IN (SELECT COL) for cor...

mstrio – Python and R wrappers for the MicroStrategy

mstrio – Python and R wrappers for the MicroStrategy REST APIs Connecting to MicroStrategy  Create a connection to the Intelligence Server using   Connection()   and    connect()  in Python and R, respectively. Required arguments for the   Connection()  function are the URL for the MicroStrategy REST API server, MicroStrategy Intelligence Server username and password, as well as the MicroStrategy project name. By default, the   connect()  function anticipates your MicroStrategy Intelligence Server username and password. LDAP authentication is also supported. Use the optional argument    login_mode=16    in the    connect()  function for LDAP authentication.  Extract data from cubes and reports  To extract data from MicroStrategy cubes and reports, use the   get_cube()  and   get_report()  functions. Use...

Microstrategy Document Autotext macros:

Autotext  code/macros in  Microstrategy Document/dashboard This is a list of the available auto text macros that the Report Services Document engine recognizes. The following auto text codes allow you to add  document variable information to your document. These auto text codes are automatically replaced by information about the document. Auto text codes for MSTR document/dashboard:  AUTOTEXT DESCRIPTION   {&PAGE}  Display the current page.  {&NPAGES}  Display the total number of pages.  {&DATETIME}  Display the current date and time.  {&USER}  Display the user name that is executing the Report Services Document.  {&DOCUMENT}  Display the document name.  {&DOCUMENTID}  Display the document ID.  {&DESCRIPTION}  Display the document description.  {&PROJECT}  Display the project name.  {&EXECUTIONTIME}  Dis...

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

Reduce Intelligent Cube Size By Finding Intelligent Cube Objects Which Are Not In Use

Reduce Intelligent Cube Size By Finding Intelligent Cube Objects Which Are Not In Use If the i-cubes can potentially be reduced in size an audit can be performed on the cube objects to see which cube objects are not being used by any of the view reports, documents, or dossiers.   The below are examples for a few of the common metadata database platforms . NOTE: To perform this audit, queries are run against the MicroStrategy metadata database. Ensure a metadata backup is taken prior to performing the below actions. Steps: 1) Identify the object ID of the Intelligent cube to be audited by checking the objects Property window 2) Identify the object ID of the project this cube exists within by opening the Project Configuration Sample Cube ID =   CFAF1E9B4D53990698C42E87C7AF2EB5 Sample Project ID =  B7CA92F04B9FAE8D941C3E9B7E0CD754   3) Run the below SQL against the metadata database by replacing the Cube ID and Project ID within the respective ...