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, 80-90% is waste Start with the individual business need and build a document based on that need Don t 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 2 nd 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 doesn t 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 year s 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
Let s 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