You are on page 1of 69

10 Tips for Optimizing the

Performance of your Web


Intelligence Reports
Jonathan Brown - SAP
SESSION CODE: 0902

LEARNING POINTS
Find out about the common issues SAP Product
Support gets asked on a regular basis
Design better reports from the beginning to avoid
performance issues later on
Discover some Best Practices that can improve
performance
Learn how to find the root cause of performance issues

RETURN ON INVESTMENT
Get better throughput out of existing hardware and
licensing
Improve the user experience and speed up user
adoption
Save time and money on BI Administration and
troubleshooting

TIPS FROM SUPPORT


#1 - Tips for a FAST Running Applet Interface
#2 - Steer clear of Monster Reports

#3 - Utilize Report Linking


#4 - Know the Architecture Differences

#1 Tips for a FAST Running Applet Interface

Webi Applet Load Performance Issues


Everyone hates waiting around for an application to load.
Some Java updates can wreak havoc on load time of the
Webi Applet
Three issues that arise a lot are covered in the next few
slides:
Online Certificate Revocation checks causing delays
JRE Security Changes that cause issues and delays
Applet comprised of over 60 JAR files, causing many security
checks

Online Certificate Revocation Checks (1/2)


Newer JRE versions automatically check for
revoked certificates online!
This happens for each JAR file (60+ in BI 4.0)
Internet connection speed plays a major factor
Can add several minutes on to load times

Online Certificate Revocation Checks (2/2)


TIPs
Use only CRLs or choose the Do not check option in
the Java Control Panel
Test On & Off for
Timing differences
Can use the Java
Console to analyze
Read my WIKI for
more Details
See KBA 1904873

JRE Security Changes Cause Issues


Oracle has tightened up security requirements for
Applets
The Applet is only updated via Patches/SPs so we
fell a little behind
New JRE versions are released much quicker than
our patches in some cases

List of known issues and resolutions can be found


here:
Web Intelligence and Oracle JRE Known Issues

Reducing the # of JAR files loaded (1/2)


BI 4.0 introduced a new architecture for our Webi
Applet Interface
Previous versions were a single JAR file
ThinCadenza.jar
BI 4.0 split this into 60+ individual JARs for easier
development and updating
JAVA security updates are not friendly to this
architecture

Reducing the # of JAR files loaded (2/2)


Upgrade to BI 4.1 SP03+
This goes back to the older architecture model and
contains a single jar for the applet
webiapplet.jar is the new name (webiapplet_en.jar is
the resource file that accompanies)
Advantage of only 1 security check, 1 cache check.
Generally improves performance by a lot!
NOTE: It is a 44 MB JAR file. Can take a while to load the
first time

Other JRE Tweaks


Visit my WIKI for some more JRE Client Side
Tweaks:
Ensuring your JRE Caching is enabled
Ensuring the Java Next-Generation Plug-in is used
Tests you can run to find out where the bottlenecks are
for slower load times

Tips for Fine Tuning Performance for the Webi Applet


Interface

#2 Steer clear of Monster reports

Large documents can mean wasted time


If only 10-20% of a large document is utilized, 8090% is waste
Start with the individual business need and build a
document based on that need
Dont try to account for all scenarios

Creating smaller documents for specific business


needs allows for faster runtime and analysis

Create smaller, reusable reports


By creating smaller, reusable reports you:
Reduce the time it takes to load the Document in
the viewer
Reduce the refresh time
Reduce the system resources needed on both
the client and server side
Improve the performance while modifying the
document

#3 Utilize Report Linking

Utilize Report Linking


Instead of using HUGE documents, consider using
smaller documents and linking them together!
Link reports together using OpenDocument linking
and a combination of Prompts and Filters
Hyperlink wizard available in HTML Interface makes this
really simple!

This removes performance hits for unnecessary


parts of the report
Higher design-time costs but better performance
for the end user

Report Linking Use Case


Use Case for Report Linking:
Report A is a summary report that summarizes the sales
for all 100 sites of Company XYZ
Report A is scheduled to run each night and take ~20
minutes to complete
Users can view the latest instance of Report A which
takes only a few seconds to load
Users can drill down into Site data for each of the 100
sites which launches a 2nd report that displays only the
site data for the site they drilled on

#4 - Know the Architecture Differences

32-bit vs 64-bit Processing Servers (1/2)


XI 3.1 and below were fully 32-bit programs
BI 4.x introduces many new 64-bit servers
Main advantage is increased resource allocation
with 64-bit architecture
No more 2GB memory limitations for Webi Processing
Servers

Can utilize 64-bit client drivers


Changes some of the sizing recommendations

32-bit vs 64-bit Processing Servers (2/2)


New 64-bit processes in BI 4.x

Web Intelligence Processing Server


Adaptive Processing Server
Adaptive Job Server
Connection Server (64-bit in most cases)
Central Management Server (CMS)
File Servers
Tomcat/Application Servers (64-bit JVM support)

A few 32-bit processes


Connection Server (32-bit on some Windows)
Web Intelligence Rich Client
Universe Designer / Information Design Tool

Know which servers are involved!


Key to identifying a bottleneck is isolating the
cause of the slowdown
Webi documents can utilize many servers for
processing

Adaptive Processing Server (DSL Bridge)


Adaptive Processing Server (Adaptive Connectivity)
Adaptive Processing Server (Visualization Service)
Connection Server 32-bit
Web Intelligence Processing Server

Case and Point BI 4.x Architecture Diagram

Learn these Webi Workflows


Interactive Diagrams are available to help you
learn about the servers that are involved
View a Webi document on-demand link
Refresh a doc in one-tier mode link

Refresh a doc in two-tier mode link


Refresh a doc in three-tier mode link
Refresh a doc based on multisource universe link
Refresh a doc based on a dimensional universe link

Run a scheduled Webi document link

TIPS FOR BEST PRACTICES


#5 Stick to a Schedule
#6 - Report Design Best Practices

#7 - Semantic Layer Best Practices

#5 Stick to a Schedule

Why Use Scheduling?


Scheduling allows lower user wait time when
implemented correctly
Allows you to offset processing to non-peak times
Can help distribute load and reduce sizing
requirements for concurrent users
Reduces impact on Database during peak times

Tips on Scheduling Webi Documents


Best Practice is to Schedule anything that takes
over 5 minutes to refresh
Allow power users to schedule reports On-Demand
if needed
You can use Report Linking + Scheduled Instances
to strike a balance between view time and age of
data

Use the Cache settings to pre-cache XLS/PDF

#6 Report Design Best Practices

Limit the # Data Providers Used


Best Practice from the field is to use no more than
15 Data Providers in a report
Queries are run in series so runtimes stack
Refresh time and merging of dimensions can cause
some big delays on the Processing Server side

Using a Data Warehouse to consolidate sources


and ETL tools to produce better reporting sources
is a better practice

Ensure Query Stripping is utilized


Query Stripping is new to BI 4.x. Strips away
unused objects from the query
Can now be utilized for Relational database as well
as BICs based reports (BI4.1 SP3+)
Has to be turned on at the Report, Query and
Universe levels
BICS connections use Stripping by default

More on Query Stripping


For Relational DBs, following parameters must be set:
Allow Query Stripping option selected in Business Layer
Enable Query Stripping option selected in Query Properties
of the Webi Document
Enable Query Stripping option select in Document
Properties of the Webi Document

USE_ENHANCED_QUERY_STRIPPING parameter
only optimizes the SELECT and GROUP BY clauses
but doesnt modify the joins and other clauses

Test Query Drill for Drill Down Reports


Option called Use query drill in the Report
Properties

Modifies the underlying query when drilling.


Utilizing the database instead of local data
Reduces the amount of data stored locally for a
drill session.
Can improve performance. Best to test both
modes to compare

Use Query Filters instead of Report Filters


Query Filters modify the SQL query to restrict the
data fetched and displayed
Report Filters only modify the displayed data
Example: A report returns a years worth of data. The
consumer is only interested in January data
Using a Query Filter, the WHERE clause is modified so
that only January data is fetched by the query.

Using a Report Filter to show only January data simply


filters the data that is displayed. The full years worth of
data is still in the underlying cube

Limit use of Scope of Analysis


Scope of Analysis is used to retrieve extra data
from the database
This extra data is stored in the cube for drill down
requests
This is great feature but has a performance impact
Could utilize the Report Linking for similar results
and an on-demand data fetch

TIP: BI Launchpad preferences for Webi allow you to


be prompted when Drilling needs more data

Expand to Level (a reasonable one)


BEx queries accessed through BICS connectivity
have an Expand-to-Level option associated to
them
This defines the level that is fetched by default
from the BEx query
APS (DSL Bridge Service) allows you to configure
a default Expand to Level.
Setting this too high can increase the time it takes
to refresh BICS based reports with large
hierarchies
More info available @ Chapter 3.4.6 Webi User
Guide

#7 Semantic Layer Best Practices

Array Fetch Size Optimization (1/2)


Array Fetch Size sets the maximum number of
rows with each fetch from the database
Tuning this size for your environment can greatly
impact performance
Set at the Universe Connection level
INTERNAL TESTING
AFS

Time

Records

Throughput

10

95

1228000

12926.32 / second

100

37

1228000

33189.19 / second

1000

18

1228000

68222.22 / second

Optim

30

1228000

40933.33 / second

Array Fetch Size Optimization (2/2)


Optimized by default for new Connections
DISABLE_ARRAY_FETCH_SIZE_OPTIMIZATION

parameter used to disable the optimization


If you wish to override the optimized values, you
must set the above parameter to Yes in IDT/UDT
Information Design Tool Guide (Chapter 18.4.1.7)
covers this option

TIPS ON FINDING ROOT CAUSE


#8 - Use Advanced RCA Tools
#9 - Sizing for Performance

#10 - Known Performance Issues &


Enhancements

#8 Use Advanced RCA Tools

What tools are available?


Use Advanced diagnostic tools for finding root cause:
The following tools are utilized by SAP and
Customers:
Wily Introscope / Solution Manager Diagnostics
Process Explorer / Process Monitor
End to End Traces
BI RCA Resources Wiki

Wily Introscope / Solution Manager


Wily Introscope is an application that detects and
diagnoses performance problems in enterprise
application environments
Built into the SAP Solution Manager product
Available as a stand-alone install for BI 4.x
customers that do not deploy Solution Manager

Why Wily?
Gives advanced diagnostics details for BI 4.x
Custom BI 4.x modules for advanced metric
Built in Dashboards for Server Overviews
Wily Investigator for in-depth details
Transaction Tracer for RCA and Profiling

Wily Transaction Tracing for Performance


Transaction Tracing allows per function timing

Get Started with this great blog by Toby Johnston


End to End Tracing for Webi can find the
bottleneck Blog post with full instructions

What is Process Explorer/Monitor?


Windows based tools for backend administration
Provides Advanced diagnostics on Processes
Real-time performance and resource details
Can give you answers to tough questions!
Free downloads from Microsoft
Process Explorer
Process Monitor

Example of Process Explorer Output


Question: Which process is using the most CPU during a
slow refresh? How much memory is used?

Example of Process Monitor Output


Question: How much network and disk traffic does a
report request take? Could network or disk be a
bottleneck?

End to End Tracing (E2E)


End to End tracing is a way to create trace files ondemand
Can be turned on from the client machine using the
SAP Client Plugin
Turns on tracing for all servers involved in a
workflow automatically!

Provides a unique ID that you can use to filter on


just the relevant data

E2E Tracing for Performance Issues


E2E Tracing only traces servers that used for a
workflow. This reduces clutter in logs
Tracing provides Duration info for functions

Trace logs can be used to narrow down areas of a


report that may be causing bottlenecks
NOTES:
E2E Tracing can cause performance issues as it is
quite Disk I/O intensive.
You can get more accurate profiling data from Wily
Introscope

E2E Tracing & GLF Viewer Example


Example of a Refresh that took 14.368 seconds.
If report takes a total of 20 seconds, we know what
part is refreshing

E2E Tracing Resources


KBA 1909467 - Where can I download the GLF
Viewer for BI Platform 4.0 and BI Platform 4.1?
KBA 1861180 - Customer instructions and best
practice for collecting a BI Platform 4.x E2E

SCN Blog Post - How to generate and consume


an E2E trace with BI4.x
SCN DOC How to identify long running functions
from E2E Traces

#9 - Sizing for Performance

Sizing for Performance


BI 4.x is not sized for performance out of the box
64-bit processing servers changes the game vs 3.1
Adaptive Processing Server is heavily utilized now

Refer to Sizing Companion Guide for details

Sizing Things to know for Webi


64-bit Webi Processing Server means no more
Memory limitations
No longer need to have many WIPS processes on the
same node. 1 or 2 is maximum needed

Adaptive Processing Server is heavily used for


some Webi workflows

BICS connections utilize DSL Bridge Service


UNX Universes use DSL Bridge Service
Charting uses Visualization Service
MSU use Data Federation Service

Use System Configuration Wizard to help split the


APS

Sizing Things to know for Webi


Location can make a big difference.
Ideally place your Processing Tier near your Database
This is where most of the data transfer will occur

Using local storage for Cache and Temp


directories can improve performance
Local storage is generally much faster I/O than network
storage

CPU Speed DOES matter!


More relevant on older hardware but 1200Mhz
processors, even if there are 128 cores, will process
documents slower

BI Support Tool can help with sizing


BI Support Tool gives you a detailed report on your
BI environment for sizing reviews

Get a BPPO Service!

Webi BPPO Services Available


New(ish) Service Available for BusinessObjects
customers
Stands for:Business Process Performance
Optimization Service
Detailed analysis of business processes,
environment and content (reports/universes)
You Choose your most critical content and
processes to be reviewed

What kind of stuff is checked?


Server configuration and consistency
Sizing of your BI Landscape
Up to 5 critical reports and universes fully analyzed
Database efficiency
Any other specified performance or process issues
identified by you!
5 day service. Usually done remotely

How to get a BPPO


Available for Enterprise Support customers
Easiest way is to contact our Customer Interaction
Center (CIC) and ask for details!

Visit the Services Page or contact your account


rep for details on all our services

#10 Known Issues & Enhancements

Lets Face it, Software is never perfect


BI 4.x has many new features

New Semantic Layer (UNX Universes)


BICS connectivity
64-bit processes
Tons of new Webi features

Development cycle starts with Can we do it?


and eventually turns into Can we do it better?
BI 4.x SPs and Patches contain many
optimizations and bug fixes that greatly improve
performance and stability

Webi Performance Defects to Watch For


Webi crashing or extremely slow when report
contains many (100s or 1000s) of variables
Optimizations were made to the code to resolve
ADAPT01683301 / SAP Note 1707166
Fixed in: 4.0.6.6, 4.0.7.2, 4.0.8.0, 4.1.1.3, 4.1.2.0 +

Webi reports that use UNV & 32-bit data


sources run much slower in BI 4.x
Unnecessary back and forth between the CS32 process
and the CMS
ADAPT01688515 / SAP Note 1846212
Fixed in: 4.0.4.15, 4.0.5.8, 4.0.6.2, 4.0.7.0, 4.1.1.0 +

Webi Performance Defects to Watch For


Copy and Paste slower in BI 4.x vs 3.1
Optimizations were made to the code to resolve
ADAPT01707607 / SAP Note 1927045
Fixed in: 4.0.7.6, 4.0.8.2, 4.0.9.0, 4.1.1.5, 4.1.2.1+

Webi document with Drill Filters takes a long


time to open in BI 4.x vs XI 3.1
Change in logic that was not optimized in BI 4.x.
Optimized through code change
ADAPT01714672 & ADAPT01681823
SAP Note 1970956 & SAP Note 1971815
Fixed in: 4.0.8.4, 4.0.9.1, 4.0.10.0, 4.1.1.6, 4.1.2.7+

Product Enhancements in BI 4.1


Here are some product enhancements that you can
benefit from
Lean Universe less fat behind the scenes

Design Time Query utilization in BI 4.1 SP03+


New Universe Caching techniques for UNX universes

Single JAR file for Webi Applet Interface

Product Enhancements in BI 4.1


Here are some MORE product enhancements that you
can benefit from
Query Stripping for Relational Databases

System Configuration Wizard for better sizing


Index Awareness for Dimensional Attributes

KEY LEARNING
What Diagnostic tools can help find Root Cause
Known issues and Product Enhancements
Best Practices for Report and SL design
Sizing and Configuration Tweaks
Choosing the right Viewer/Designer

FOLLOW US

Follow the ASUGNews team:


Tom Wailgum: @twailgum
&
Courtney Bjorlin: @cbjorlin
For all things SAP

THANK YOU FOR PARTICIPATING


Please provide feedback on this session by completing a
short survey via the event mobile application.
SESSION CODE: 0903
For ongoing education on this area of focus,
visit www.ASUG.com

You might also like