preventing, diagnosing, and resolving the 20 most common dashboard performance problems

52
© 2011 Wellesley Information Services. All rights reserved. Preventing, diagnosing, and resolving the 20 most common dashboard performance problems Dr. Berg Comerit Inc.

Upload: wren

Post on 15-Feb-2016

31 views

Category:

Documents


0 download

DESCRIPTION

Preventing, diagnosing, and resolving the 20 most common dashboard performance problems. Dr. Berg Comerit Inc. We already covered hardware sizing, compatibility and server options in a prior session, so now we will look at the application, design and interfaces. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

© 2011 Wellesley Information Services. All rights reserved.

Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

Dr. BergComerit Inc.

Page 2: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

2

Background

• We already covered hardware sizing, compatibility and server options in a prior session, so now we will look at the application, design and interfaces.

• We will specifically look at dashboard design, query design, connectivity impacts, in-memory processing options as well as dashboard performance monitoring options.

Page 3: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

3

Functionality Vs. Performance - What wins?

Page 4: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

4

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 5: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

5

Connectivity and Performance

As we covered in the earlier session, the type of connectivity matters for the performance

1. BICS connectors performs well

2. Avoid the MDX interface (it is slow)

3. Avoid direct access to the InfoProviders since this bypasses the BI analytical engine in SAP BW.

Always pick the fastest interface available for the data source you are building dashboard onSource: SAP AG, 2011

Page 6: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

Data Connectivity — Crystal Reports and Live Office

You can use transient providers to create real-time dashboards on-top of ERP data.

You can also use Crystal for detailed drill-down analysis.

If you always use the "refresh on load” option for Live Office connections, your users will experience periodic slow performance.

6

By leveraging the aggregation in Crystal Reports 2011, you can also get faster Xcelsisus dashboard response time.

Page 7: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

7

Backend - Build on a Solid Performance Foundation

Modularize the data and create sub-sets of data for really fast dashboarding.

Generic 'metrics' data tables can be created for summarized KPI and scorecard dashboards.

The summary, or snapshot data can be accessed

much faster than underlying data tables with

millions of records.

Real example

Page 8: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

8

Backend - WebI and Xcelsisus Performance Architecture

• Dashboards for executive users

• Pre-delivered WebI reports for casual users

• Ad-hoc WebI reports for power users

The dashboards are only built on the low volume daily snapshot cube (this is also placed in BWA for very high-performance).

In this example, the company use snapshots for performance reasons

Real example

Page 9: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

9

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 10: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

10

Query Read Modes

There are three query read modes that determines the amount of data to be fetched from a database and sent to the application server:

1. Read all data All data is read from a database and stored in user memory space

2. Read data during navigation Data is read from a database only on demand during navigation

3. Read data during navigation and when expanding the hierarchyData is read when requested by users in navigation

Key Feature: Reading data during navigation minimizes the impact on the application server resources because only data

that the user requires will be retrieved

Page 11: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

11

Recommendation: Query Read Mode for Large Hierarchies

• Reserve the Read all data mode for special queries— i.e. when a majority of the users need a given query to slice and dice against all dimensions, or data mining This places heavy demand on database and memory resources and may impact

other BW processes A query read mode can be defined on an individual query or as a default for new

queries (transaction RSRT)

• For queries involving large hierarchies, it is smart to select Read data during navigation and when expanding this option to avoid reading data for the hierarchy nodes that are not expanded.

Recommendations for OLAP Universes & WebI analysis

1. Use of hierarchy variable is recommended2. Hierarchy support in SAP Web Intelligence for SAP BW is limited3. The Use Query Drill option significantly improves drilldown performance4. Look at the 'Query Stripping' option for power users.

Page 12: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

12

Reduce the use of conditions-and-exceptions reporting

This approach separates the drill-down steps. In addition to accelerating query processing, it provides the user more manageable portions of data.

This generates additional data transfer between database & application servers

If conditions and exceptions have to be used, the amount of data to be processed should be minimized with filtersWhen multiple drilldowns are required, separate the drilldown steps by using free

characteristics rather than rows and columns

BENEFIT: This results in a smaller initial result set, and therefore faster query processing and data transport as compared to a query where all characteristics are in rows

Conditions & exceptions are usually processed by the application server

Page 13: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

13

Performance settings for Query Execution

This decides how many records are read during navigation.

Examine the request status when reading the InfoProvider

In 7.x BI: OLAP engine can read deltas into the cache. Does not invalidate existing query cache.

Displays the level of statistics collected.

Turn off/on parallel processing

When will the query program be regenerated based

on databasestatistics

Page 14: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

14

Filters in Queries used in Dashboards

Using filters contributes to reducing the number of database reads and the size of the result set, thereby significantly improving query runtimes.

Filters are especially valuable when associated with large dimensions, where there is a large number of characteristics such as customers and document numbers.

Page 15: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

15

The RSRT Transaction to examine slow queries

P1 of 3

The RSRT transaction is one of the most beneficial transaction to examine the query performance and to conduct 'diagnostic' on slow queries from the BW system.

Page 16: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

16

Do you need an aggregate - some hints

This suggests that an Aggregate would have been beneficial

P2 of 3

Page 17: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

17

Get Database Info

In this example, the basis team should be involved

to research why the Oracle settings are not

per SAP's recommendation

The RSRT and RSRV codes are key for

debugging and analyzing slow queries.

P3 of 3

HINT: Track front-end data transfers & OLAP performance by using RSTT in SAP 7.0 BI

(RSRTRACE in BW 3.5)

Page 18: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

18

Debug Queries using the transaction- RSRT

Using RSRT you can execute the query and see each breakpoint,

thereby debugging the query and see where the execution is slow.

Try running slow queries in debug mode with parallel processing deactivated to

see if they run faster.

Page 19: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

19

1.A large number of Key Figures in the BEx query will incur a significant performance penalty when running queries, regardless of whether the Key Figures are included in the universe

2.Only include KFs used for the dashboard in the BEx query (keep it small)

3.This performance impact is due to time spent loading metadata for units, executed for all measures in the query

Recommendation for Key Figures in OLAP universes

After SAP BusinessObjects Enterprise XI 3.1 FP 1.1, the impact of large number of key figures was somewhat reduced by

retrieving metadata information only when the unit/currency metadata info is selected. However, this is still best practice

Page 20: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

20

When Restrictive Key Figures (RKF) are included in a query, conditioning is done for each of them during query execution. This is very time consuming and a high number of RKFs can seriously hurt query performance

My Recommendation: Reduce RKFs in the query to as few as possible. Also, define calculated & RKFs on the Infoprovider level instead of locally within the query. Why?:

The Performance Killers - Restrictive Key Figures

Benefit: Formulas within an Infoprovider are returned at runtime and held in cache.

Drawback: Local formulas and selections are calculated with each navigation step.

Page 21: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

21

Calculated Key Figures (CKF) are computed during run-time, and a many CKFs can slow down the query performance.

How to fix this: Many of the CKF can be done during data loads & physically stored in the InfoProvider. This reduces the number of computations and the query can use simple table reads instead. Do not use total rows when not required (this require additional processing on the OLAP side).

Dashboard Performance Killers - Calculated Key Figures

Recommendation for OLAP universes: RKF and CKF should be built as part of the

underlying BEx query to use the SAP BW back-end processing for better performance

Queries with a larger set of such KFs should use the “Use Selection of Structure Members” option in the

Query Monitor (RSRT) to leverage the OLAP engine

Page 22: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

22

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 23: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

23

Dashboard Performance Hint: The Number of Rows in the Result Set

Limit the number of rows in your result set to between 100 - 500

Returning query result sets with few records of a numeric type or with keys and indicators provides for the best dashboard performance

The Length of each records (# of columns) and the data type also impacts performance

In exceptional cases when you have leveraged other performance tuning methods, you may extend this to up to 1,000 rows.

Page 24: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

Divide and Get Performance

Drilldown Options

Link to Details Dashboard

Split your dashboards into logical units & get new data when drilldowns are executed. This keeps the result set for each query small and also

decreases the load time for each dashboard

Page 25: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

25

Excel Performance Considerations - What to Avoid

Complex logic and nested logic creates large swf files takes a long time to open. Try to keep as much of the calculations and logic in the query instead of the spreadsheet.

The logic you build into your Excel Spreadsheet is also compiled into the flash file when you export it.

Since some 'daisy-chain' functions are very time consuming, you should be careful to not add to many condition in the data. Lookup functions and conditioning that should be avoided include:

Lookups

Mid strings (MID)Right and left strings (RIGHT/LEFT)Horizontal Lookups (HLOOKUP)Vertical Lookups (VLOOKUP)

ConditionGeneral conditioning (IF)Count if a condition is true (COUNTIF)Sum if a condition is true (SUMIF)

Page 26: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

26

Sorting is done by the BI Analytical Engine. Like all computer systems, sorting data in a reports with large result sets can be time consuming.

The BI Analytical Engine and Sorting

Hint: Reducing the text in query will also speed up the query processing time

Reduce the number of sorts in the 'default view'. This will provide the users with data faster. They can then choose to sort the data themselves.

User Sorts themselves

Page 27: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

27

Dashboard Objects that Can Cause Slow Performance

These are dashboard objects you need to carefully consider before employing them.

Page 28: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

28

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 29: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

It is hard to build a fast dashboard with many queries and panels without BW Accelerator.

This provides in-memory processing of queries that is 10-100 faster.

It is all about Performance, Performance, Performance

What we simply do is placing the data in-memory and retrieving it much faster. There are also some limited OLAP

functionality that can be built in BWA 7.3, but most data processing still occurs in the BI Analytical engine.

You can also place non-SAP data in-memory, using BOBJ data Services.

Page 30: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

The major improvement is to

make query execution more predictable and

overall faster

Seconds

Num

ber o

f Que

ries

Num

ber o

f Que

ries

Seconds

BW Accelerator Performance Increases - real example

Page 31: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

31

BI Analytical Engine’s Query Executing Priorities

Query ExecutionWithout SAP NetWeaver

BW Accelerator

Query ExecutionWith SAP NetWeaver

BW Accelerator

Information Broadcasting /Precalculation

Query Cache

Aggregates

InfoProvider

Information Broadcasting /Precalculation

Query Cache

SAP BW Accelerator

Aggregates can be replaced with SAP BW Accelerator, while the memory cache is still useful.

Page 32: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

32

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 33: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

33

Different Uses of the MDX and the OLAP Cache

The OLAP Cache is used by BW as the core in-memory data set. It retrieves the data from the server if the data set is available.

The Cache is based on First-in --> Last out.

This means that the query result set that was accessed by one user at 8:00am may no longer be available in-memory when another user is accessing it at 1:00pm.

Therefore, queries may appear to run slower sometimes.

The MDX cache is used by MDX based interfaces, including the OLAP Universe.

Page 34: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

34

Use the BEx Broadcaster to Pre-Fill the Cache

Distribution Types

You can increase query speed by broadcasting the query result of commonly used queries to the cache.

Users do not need to execute the query from the database. Instead the result is already in the system memory (much faster).

Page 35: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

35

The Memory Cache Size

The OLAP Cache is by default 100 MB for local and 200 MB for global use

This may be too low...

WARNING: The Cache is not used when a query contains a virtual key figure or virtual

characteristics, or when the query is accessing a transactional DSO, or a virtual InfoProvider

Look at available hardware and work with you basis team to see if you can increase this.

If you decide to increase the cache, use the transaction code RSCUSTV14.

Page 36: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

36

Monitor Application Servers and Adjust Cache Size

To monitor the usage of the cache on each of the application servers, use transaction code RSRCACHE and also periodically review the analysis of load distribution using ST03N – Expert Mode

PS! The size of OLAP Cache is physically limited by the amount of memory set in system parameter rsdb/esm/buffersize_kb.

The settings are available in RSPFPAR and RZ11.

Page 37: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

37

The Four Options for OLAP Cache Persistence Settings

CACHE OLAP Persistence settingsNote When What t-code

Default Flatfile

Change the logical file BW_OLAP_CACHE when installing the system (not valid name) FILE

Optional Cluster table Medium and small result setsRSR_CACHE_DBS_IX RSR_CACHE_DB_IX

OptionalBinary Large Objects (blob) Best for large result sets

RSR_CACHE_DBS_BLRSR_CACHE_DB_BL

Available since BW 7.0 SP 14

Blob/Cluster Enhanced

No central cache directory or lock concept (enqueue). The mode is not available by default.

Set RSR_CACHE_ACTIVATE_NEW RSADMIN VALUE=x

Page 38: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

38

Correct Aggregates Are Easy to Build

We can create proposals from the query, last navigation by users, or by BW statistics

Create aggregate proposals based on BW statistics. For example:• Select the run time of queries to

be analyzed • Select time period to be analyzed• Only those queries executed in this

time period will be reviewed to create the proposal

Create aggregate proposals based on queries that are performing poorly.

Page 39: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

Activate the aggregate

1. Click on Jobs to see how the program is progressing

The process of turning 'on' the aggregates is simple

Page 40: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

Fill aggregate with summary data

Page 41: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

41

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 42: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

42

Performance Testing: Load and Stress

• Load testing is done to 20% of the named user base Turn off the cache (we assume all hits 'new data') Execute the Dashboard URLs using a tool or a simple JavaScript Monitor database, portal and BI system load Log response time and have multiple browsers and PCs hitting the data from

multiple locations (network testing)

• Stress Testing is done at 40% of named user base The test is done the same way as on the load testing, just with more 'users' The system may not be able to pass at this level, but the break-points are identified

All Dashboard systems should be load tested to 20% of user base prior to go-live

Page 43: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

43

Server Locations and Network Capacity

• Having a central global install of BI 4.x with many users, can cause significant network load and performance issues

Consider the network topology, capacity and the user locations before implementing global dashboards

Page 44: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

44

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 45: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

45

EarlyWatch Reports in Solution Manager

EarlyWatch reports provide a simple way to confirm how your system is running and to catch problems

A “goldmine” for system recommendations

EarlyWatch reports are available since Solution manager version 3.2 SP8.

The more statistics cubes you have activated in BW, the better usage information you will get. Depending on your version of SAP BW, you can activate 11-13 InfoCubes. Also, make sure you capture statistics at the query level (set it to 'all').

System issues can be hard to pin-down without access to EarlyWatch reports. Monitoring reports allows you to

tune the system before user complains

Page 46: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

46

Information about an pending 'disaster'

This system is about to 'crash'

The system is growing by 400+ Gb per month, the app server is 100% utilized and the Db server is at 92%.

This customer needed to improve the

hardware to get the query performance to an acceptable level

Page 47: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

47

The Dashboard Performance Checklist1. The hardware servers - Check Sizing2. The server locations and networks - Check Loads3. Query review - Look at database time, calculation time and design4. Interface review - Make sure you are using the best for the data source

5. Dashboard review - Look at Excel logic, container usage, number of flash objects, sorts, size of result set & simplification opportunities

6. In-memory review - Look at cache usage, hit rations and BWA usage

7. Review data sources - Examine if snapshots can be leveraged and look for possibilities to create aggregates

8. Examine compatibilities between browsers, flash and office versions9. Review PC performance issues - memory, disk and processors

Performance is complex, look at more than one area (i.e. web portal bottlenecks and LDAP servers)

Page 48: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

48

What We’ll Cover …

• Background • Connectivity and Backend • Query Performance• Dashboard Design• Infrastructure and In-Memory Processing• Pre-Caching and Aggregates• Performance Testing: Load and Stress• EarlyWatch and The Performance Checklist• Wrap-up

Page 49: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

49

Resources

• Tuning SAP BusinessObjects Solutions for Optimal Performance: Tips from the Trenches by Chris Dinkel Requires log-on at www.SAPInsider.com

• SAP Business Objects Tuning by Steve-Bickerton wp.broadstreetdata.com/wp-content/uploads/BOCX-Speaker-Performance-

Tuning_-Steve-Bickerton.pdf

• SAP MarketPlace for Sizing guidelines SBO_BI_4_ 0_Dashboard_designer.pdf - requires log-on to service.sap.com

Page 50: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

50

7 Key Points to Take Home• Dashboards are all about performance, performance and performance

• You have to spend time on the backend performance tuning

• Avoid direct querying of high data volumes, create summaries instead

• Consider in-memory processing for all critical dashboards

• Your interface to the data will impact the performance - avoid MDX

• Size your hardware one size 'too big' - it is hard to make a second 'first impression'.

• Use a gradual rollout of your dashboards, monitor the performance and conduct load and stress tests before any major go-lives.

Page 51: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

51

Your Turn!

How to contact me:Dr. Berg

[email protected]

Page 52: Preventing, diagnosing, and resolving the 20 most common dashboard performance problems

52

DisclaimerSAP, R/3, mySAP, mySAP.com, SAP NetWeaver®, Duet®, PartnerEdge, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Wellesley Information Services is neither owned nor controlled by SAP.