SlideShare a Scribd company logo
1 of 89
Download to read offline
Produced by Wellesley Information Services, LLC, publisher of SAPinsider. © 2017 Wellesley Information Services. All rights reserved.
An In-Depth Look at Pinpointing and
Addressing Sources of Performance Problems
in Your SAP BusinessObjects BI Reports and
Dashboards
Dan Goodinson
BI Brainz
1
In This Session
• Leverage controlled and consistent testing methodologies to ensure effective
performance measurement
• Determine where time is spent during various workflows and get to the bottom of
performance complaints and improve the experience for end users
• Use a variety of dedicated tools for collecting traces, and learn how to read and find
information in the output trace files
• Delays can have unexpected root causes; see how to identify performance bottlenecks
with real-life examples, as well as how different components in the architectural workflow
can influence execution times
• Pinpoint the cause of poor response times in reports and dashboards – whether it’s front-
end report design, server resources/configuration, back-end data execution, or specific
product code calls that require optimization
2
What We’ll Cover
• What is performance?
• Best practice when measuring performance – controlled and consistent testing
• Tools to use to interpret the data, and accounting for time spent in each processing layer
• Performance analysis for some example workflows
• Wrap-up
3
What Is Performance?
• In this brief introductory section, we will:
 Realize that performance can mean different things to different users
 Learn and understand users’ expectations
 Understand user requirements and the perception of performance
 Align expectations – room for compromise?
 Look at a case study – BEx web templates to SAP BusinessObjects BI4
4
Performance Can Mean Different Things to Different People
• Does performance mean that a document opens quickly?
 Can we load most important data first, and then load other data in the background?
 Can we load data on demand (i.e., only when user looks at it) to improve initial
opening time?
• Does performance mean having a document refresh quickly?
 Can we challenge the amount of data being loaded – does the user really need all
that data?
• Does performance mean making quick or smooth navigation within a document?
 Trade-off between background “lazy loading” or on-demand vs. fast initial opening
 What is quick? What is smooth?
• What is the user expectation, and why?
5
Learn and Understand Users’ Expectations
• When, where, and how was the expectation set? (Example 1)
 Was expectation set by the sales person or consultant?
 What was the sales pitch based on?
 Was a demo done against real data? Was it done against your data?
• How does this help us?
 Learn what users bought into – then at least we know what we need to achieve/exceed
 Can the presales team still help us? Perhaps they can clarify product capabilities?
• Which tools were proffered – were they the most suitable tools for the task at hand?
 There is rarely a one-size-fits-all solution
 SAP BusinessObjects offers a comprehensive suite of tools – choose the right tools for the job!
 But remember – user requirements may conflict with best-fit tool selection
 E.g., users may say they want ad hoc analysis against OLAP data, but may prioritize rich formatting
 In such a case, WebI (rich formatting) may have to be selected over aOLAP (ad hoc analysis)
WebI = SAP BusinessObjects Web Intelligence
6
Learn and Understand Users’ Expectations (cont.)
• When, where, and how was the expectation set? (Example 2)
 Is user making a comparison against some benchmark?
 Legacy system?
 Outgoing tools and/or technology?
 Different data source, different hardware environment, different version of
the report?
 Is a fair comparison being made?
 To be fair, a comparison should be “like for like”!
 Same front-end functionality?
 Same back-end data structures, queries, etc.?
 Same volume of data?
 Same software versions?
7
User Requirements and Perception of Performance
• Let’s assume performance means “I want my document to open quickly”
 End user wants everything ready as soon as they open a document … but it’s not possible to view all
report elements at once
 Can we prioritize which parts load first?
 Design dictates that a given report opens on a particular page, e.g., overview/summary page
 What if we only load data for the initial page on first use … and load data for other pages after that, or
maybe even load other data on demand?
 On demand or “lazy loading” – why take a performance hit loading data users may not even view?
• This are “smoke and mirrors” – but it may be a way to give users what they want
 We’re not altering performance as such, just the users’ perception of performance
 This technique is particularly relevant for SAP BusinessObjects Design Studio
 Check out following SAP blog article for more information
https://blogs.sap.com/2015/05/22/design-studio-performance-best-practices/
8
User Requirements and Perception of Performance (cont.)
• Let’s assume performance means “I want my document to refresh quickly”
 Example: WebI via BICS (although the principles are the same for any given example)
 Typical design challenge is that users demand many objects and fast refresh
 Massive data sets obviously take longer to retrieve
 But a high number of objects – even if not used in the report – will impact front-end performance
 Limit query size wherever possible – reduce characteristics and key figures
• Challenge users – Do they really need so many objects in the query?
 If some objects are used infrequently, create a smaller (faster!) query for that purpose
 Remove objects from the main query at the same time, thereby improving performance
 Bringing back metadata about unused objects can have serious performance cost
 The following blog is old, but key principles are still very relevant
https://blogs.sap.com/2012/08/22/performance-optimization-for-webi-report-based-on-bw-bex-queries/
9
User Requirements and Perception of Performance (cont.)
• Let’s assume performance means making quick or smooth navigation
• This is a difficult balancing act – most likely will need compromise from user
 Limitations may be database, network, BI4 server(s), client laptop, …
 Assume that all possible query and report optimizations are already done
 Use SAP HANA to speed up the data source?
 Add additional resources to your BI4 server, e.g., add new processing tiers?
 Cloud computing to improve performance on your BI4 deployment?
 Outfit key users with new laptops?
 Invest in network infrastructure?
 Far cheaper – and arguably better – to reduce results set, or make smaller reports!
 It’s not practical to have a daily report with hundreds of pages of charts and data
 Split them into smaller, better-performing reports
 Becomes a balance between increased maintenance overhead and end-user satisfaction
10
Aligning Expectations — Room for Compromise?
• The preceding slides underline importance of requirements gathering and design phase
 Engage user population from the outset, ensure requirements are correctly established
 Choose the right tools for best fit
 Not necessarily the same tool for each use case
 Frequent reviews throughout the design phase will catch problems early
 Understanding what users want in terms of performance can help avoid complaints
• Try to balance performance against document size
 Do all users really need a daily report with 100s of pages?
• Try to balance improved functionality against bare bones performance
 Do we want live data (e.g., aOLAP) or refreshable data (e.g., WebI)?
 Do we want ad hoc analysis or feature-rich reporting, or something in between?
 Highly formatted reports with rich features almost always come with overheads
 Overhead may be performance, or effort required to create and maintain the report
11
Case Study — BEx Web Templates to SAP BusinessObjects BI4
• Brief: To decommission BEx web templates and transition to BI4
• A “best fit” approach was required since there was no direct mapping between web
templates and BI4
• BI4.1 was already tried and tested in other areas within the organization
 Requirement was to bring all business areas together into a BI4.1 shared service
 A given business area had multiple subdivisions
 Each subdivision has a number of standard use case reports
 Each use case was individually assessed for transition to BI4.1
 User requirements sought from business area focal points for each specific use case
12
Case Study — BEx Web Templates to SAP BusinessObjects
BI4 (cont.)
• Business area focal points outlined their requirements
 “Like for like” was key requirement
 Needed negotiation, as some functionality in web templates simply did not exist in BI4.1
 E.g., bookmarking
 Reasonable expectation that performance should be the same or better
 New reports in BI4 should not be slower than equivalent web templates
• Obvious best fit seemed to be SAP BusinessObjects Analysis, edition for OLAP
• But there were also demands for new (previously unavailable) functionality
 Enhanced slice and dice – manipulate report layout by dragging/dropping
 Enhanced charting, plus improved look and feel of tabular data
 Printer-friendly formatting – headers, footers, embedded images, etc.
• aOLAP was trialed and rejected. Users saw, liked, and then wanted WebI.
13
Case Study — BEx Web Templates to SAP BusinessObjects
BI4 (cont.)
• We’re now trying to satisfy user demand for WebI to replace web templates!
 Initial performance was considered very poor by comparison
• Some WebI product problems were identified and addressed by the vendor
 E.g., duplicate queries being fired at data source, related to query execution plan
 This was readily identified through tracing methodologies discussed in this workshop
• Some product enhancements were also implemented by vendor
 Performance improvements related to query stripping
 This was quantifiable through tracing methodologies discussed in this workshop
• Front-end design errors resulted in poor performance, before being identified and fixed
 E.g., use of “page number x of y” in footer alongside “fit to page” functionality
 Every page needed to be calculated before the first page could be rendered
 Source was identified through tracing and culprit was confirmed by vendor
14
Case Study — BEx Web Templates to SAP BusinessObjects
BI4 (cont.)
• Was comparison fair?
 Enhanced functionality (as seen and subsequently demanded by users)
 Much richer formatting compared to web templates
 Vastly simplified, visually improved charting compared to previous technology
 Easier to manipulate tabular data – no need to edit the underlying BEx query now
 This is not free – most of this comes with an overhead!
 WebI best fit/equivalent/“like for like” was a little slower, but still comparable
• But now add new and resource-heavy functionality on top
 Ability to actually build own reports?
 Ability to merge data sources?
 Functions to display page count/author/create date, “fit to page,” etc.
 More overheads!
15
Case Study — BEx Web Templates to SAP BusinessObjects
BI4 (cont.)
• Summary:
 Using tracing techniques in this workshop, flaws in comparisons were highlighted
 In some comparisons the underlying query wasn’t even returning the same data!
 This was addressed to level the playing field
 Using tracing techniques in this workshop, product issues were identified
 These were raised with SAP, and have subsequently been resolved
 Using tracing techniques in this workshop, product improvements were quantified
 Upgrades were proven to be effective, and could be demonstrated to the business
16
What We’ll Cover
• What is performance?
• Best practice when measuring performance – controlled and consistent testing
• Tools to use to interpret the data, and accounting for time spent in each processing layer
• Performance analysis for some example workflows
• Wrap-up
17
Best Practice When Measuring Performance
• Architectural workflows within SAP BusinessObjects Enterprise can be complex
• When a performance concern is raised, it can be a challenge to identify the root cause
 Front end – inefficient report design?
 Are you using the best application for the job at hand?
 SAP BusinessObjects and database – insufficient capacity, incorrect configuration?
 Inefficient distribution of servers across cluster
 Inadequate or inefficient heap assignment
 Suboptimal configuration of services, SAP Notes and fixes not applied
 Other factors
 Room to improve your database query?
 Network latency?
 End-user laptop configuration causing a bottleneck?
18
Best Practice When Measuring Performance (cont.)
• Front-end application (e.g., WebI) is frequently blamed since this is the only part users
interact with …
• Another frequently cited concern is lack of server resources
• These concerns can be easily investigated, verified, and addressed or put to rest
19
Best Practice When Measuring Performance (cont.)
• Start by analyzing a workflow in isolation
 Where possible, take measurements in an environment where you can control the load
 If production-like resources are not available, be prepared to extrapolate
 If using tools to generate load, be sure to set realistic active concurrency
• Take multiple measurements at different times during the day
 Time may vary even in the same workflow – always take an average
 Don’t forget to account for system/database/client cache
• Do some locations suffer more than others?
 Is number of users at that site a factor? Bandwidth issues?
 Are jobs running overnight which affect different time zones?
 How far is that location from your data? Network round trip/latency?
20
Best Practice When Measuring Performance (cont.)
• Once you have consistent measurements, check all architectural and processing layers
involved and determine time spent within each layer
 How much time is spent in the database running the query?
 How much time is spent bringing data back from the data source?
 How much time is spent building each page and delivering it to the user?
• This will help identify which areas you may need to revisit:
 Content design: Are you trying to fit too much into one report or database query?
 Environment sizing or configuration: Are additional resources required?
 Background jobs, data loading: Can the schedule be adjusted to minimize impact?
 Customization or call stack: Is it time to raise a Support case?
21
What We’ll Cover
• What is performance?
• Best practice when measuring performance – controlled and consistent testing
• Tools to use to interpret the data, and accounting for time spent in each processing layer
• Performance analysis for some example workflows
• Wrap-up
22
Tools to Use to Interpret the Data, and Accounting for Time Spent
in Each Processing Layer
• The following are examples of tools that can be used to capture and review traces:
 SAP Client Plug-in: a BI4 trace utility provided by SAP (SAP article 1861180)
 Wireshark: freely available network analyzer
 HttpWatch, Fiddler: freely available HTTP traffic and web analyzer
 GLF Viewer: a log file viewer provided by SAP
 This has been superseded by FlexiLogReader (SAP KB article 2203047)
 Notepad++: a freely available editor that supports several programming languages
 Nbtstat: diagnostic tool for NetBIOS over TCP/IP (part of the Windows OS)
• You’ll see some of these in action in the demonstrations a bit later
23
Client Tool to Generate End-to-End Trace Files
• Introduction to SAP end-to-end client plug-in
• Making sure the plug-in works correctly
 Some common issues explained
• What the tool does, and how it can be very useful
 Tags each web transaction with a unique ID
 Output is written to trace files from each component in workflow
 Advantages over server-side traces
• Output from the trace tool
 businesstransaction.xml
 correlationID
• Limitations
 Currently requires Internet Explorer
 Does not work with Excel (e.g., for Analysis, edition for MS Office)
24
Tools to Analyze Trace Files — General Usage Tips
• Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files
• Filter by correlationID from businesstransaction.xml
 This removes background noise
 You can now focus on activity from your workflow
• Use indents and/or color to highlight each function call
 Can now easily find start/end of function calls
 Makes it easy to see how long each step takes
• Add threadID column
 Can now see and filter by individual threads
• Scan transaction times, and look for “jumps”
 This is when activity is happening outside the traces
 E.g., when activity is happening in data source
25
What We’ll Cover
• What is performance?
• Best practice when measuring performance – controlled and consistent testing
• Tools to use to interpret the data, and accounting for time spent in each processing layer
• Performance analysis for some example workflows
• Wrap-up
26
Performance Analysis for Some Example Workflows
• Web Intelligence refresh via OLAP BICS to BW on SAP HANA
• Web Intelligence refresh via JDBC to SAP HANA sidecar
• SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA
• AD or SAP logon into BI launchpad
• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA
• SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
27
Web Intelligence Refresh via OLAP BICS to BW on SAP HANA
• Web Intelligence (WebI) is an ad hoc reporting application that allows end users to define
queries and design reports, or to modify existing reports depending on requirements
• To optimize report performance or find potential bottlenecks:
 Capture SAP BusinessObjects traces
 Use SAP Client Plug-in (see SAP Note 1861180)
 This tags each step with a unique correlationID
 Measure front-end execution using, e.g., HttpWatch
 Record BW execution time using ST12
 Review BW stats with ST13 BIIPTOOLS
28
WebI Refresh via OLAP BICS to BW on SAP HANA
• Workflow starts when user clicks button in browser
 HttpWatch, Fiddler, etc., will accurately record start (and end) of execution
• Take several measurements without traces to establish a baseline
• With a consistent measurement, now perform same workflow but with traces enabled
 Be aware of overhead introduced by the traces – overhead can be significant!
 Consider overhead in your final assessment
• Gather and filter the traces based on unique tag generated by the SAP Client Plug-in
 This will enable you to follow the workflow through the traces
 Several trace analysis tools are provided by SAP
 E.g., FlexiLogReader (refer to SAP Knowledge Base Article 2203047)
29
WebI Refresh via OLAP BICS to BW on SAP HANA (cont.)
• In this example workflow, several servers will be called
 WebI Processing Server sees incoming call from HttpServletRequest
 We can follow the function call stack which will invoke other servers as required
 Calls to CMS (for security and core processing queries)
 Calls to Security Token Server (STS) to resolve single sign-on to BW
 DSLBridge (hosted in an APS) to fetch data from BW and to build transient universe
• Traces show the architecture involved – investigate time spent in each processing layer
• Add up time spent for all “HttpServletRequest” calls
 Does this match time measured by, e.g., HttpWatch, Fiddler, etc.?
 Small discrepancies to be expected
 Time measured in front end (but not in traces) is outside of SAP BusinessObjects
 E.g., time spent processing by client browser
30
WebI Refresh via OLAP BICS to BW on SAP HANA (cont.)
• Use the following tools to capture information during the workflow:
 SAP Client Plug-in (set trace level to high)
 We can also activate traces via CMC, though in that case our transactions won’t
be tagged
 HttpWatch or Fiddler (or equivalent) can measure front-end execution time
 This will also show the HTTP requests involved
 Use ST12 transaction in BW for user ID executing the query
 Only capture RFC calls (at this stage)
31
WebI Refresh via OLAP BICS to BW on SAP HANA (cont.)
• After workflow has completed:
 Save the HttpWatch output as a .hwl file
 Stop recording with SAP Client Plug-in and collect relevant trace files
 BI launchpad
 WIPS
 DSLBridge
 CMS
 STS (if applicable)
 Stop ST12 and collect output, pick up statistics in ST13/BIIPTOOLS
 ST12 and ST13/BIIPTOOLS output can be saved to Excel for offline analysis
32
WebI Refresh via OLAP BICS to BW on SAP HANA (cont.)
• For comprehensive traces, use SAP Client Plug-in on “high” setting
• But this creates a problem – activity will be logged on virtually all trace files (even those
not relevant to our workflow)
 “High” will pick up unimportant communication between internal components
 This background noise is not important to us
• To see which components are of interest in any workflow, first run the traces on “low”
 Then gather ALL trace files with .glf file extension
 Search all .glf files for correlationID tag from businesstransaction.xml
 There is less “noise” – we only find hits in the files that are important to us
• Now run traces again on “high” setting to record your workflow
 Gather only trace files you have identified as important, and ignore the rest
33
WebI Refresh via OLAP BICS to BW on SAP HANA (cont.)
• Various tools can be used to search multiple trace files for the correlationID tag
 E.g., Notepad++, UltraEdit, etc.
 Relevant* traces shown here:
 WIPS
 DSLBridge
 CMS
 STS
*BI launchpad is also relevant though not shown here
34
Analysis of Trace Files
• When bringing the results together, you’ll see time spent on operations like:
 DPCommandsEx
 answerPrompts
 openDocumentMDP
 getSessionInfosEx
 getMap, getPages, getBlobInfo, etc.
• Follow incoming/outgoing function calls from Tomcat layer to WIPS, and from WIPS to
other services
• For activity outside SAP BusinessObjects (e.g., in BW), details of time spent can be found
using tools provided by that particular module/interface (e.g., ST12, ST13)
 SAP BusinessObjects traces can only observe overall time spent outside the product
 Traces contain no detail/granularity on transactions inside the data source
35
WebI Refresh via OLAP BICS — Analysis of Trace Files
• Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files
• Analyze time spent in different parts of the workflow
 Identify time spent inside the product
 See breakdown of time spent inside data source
• Identify areas of concern that warrant further investigation
• Summarize time spent performing individual functions
 What are the most expensive functions?
 Can we change something in the report to save us some time?
 Demonstrate improvement in performance
• This is taken from a real-life example
36
WebI Refresh via OLAP BICS — Analysis of Trace Files (cont.)
• The illustration below brings together HttpWatch, traces, ST12, and ST13 data. Total
execution was measured as 12.822s, and I accounted for 12.109s in the breakdown:
37
Analysis of Trace Files — Breakdown of Findings
• Total execution time as seen by user was recorded using HttpWatch
 This comprises:
 BI4 Platform time
 CMS authorization (STS was used, because of SSO to BW)
 DSLBridge
 WebI Processing Server (WIPS)
 Data source time (BW on SAP HANA)
 Query execution time
 Calculation in database
 Transfer time between database and BI4 platform
 Measured time that is outside BI4 traces, e.g., time spent in client browser/laptop
38
Analysis of Trace Files — Breakdown of Findings (cont.)
• Here is where most time was spent at each stage:
 BI4 Platform time – captured in BI4 trace files
 CMS time (and STS time, since we are using SSO to BW)
 Security/authorization checks can be expensive
 Can we simplify security (e.g., reduce group membership) to improve response times?
 DSLBridge
 Query execution plan (QXP) and transient/lean universe generation
 More objects in the BEx query means more expensive QXP
 Challenge the business users – do they really need/use ALL those objects??
 Can you satisfy business requirements using several smaller, leaner queries/reports?
 WebI processing
 Microcube population, rendering report for display, calculation of variables, etc.
 Check for expensive pagination functions, e.g., GetPages (for “page number x of y”)
 Can any report-level calculations be pushed down to the database?
39
Analysis of Trace Files — Breakdown of Findings (cont.)
• Here is where most time was spent at each stage: (cont.)
 Data source time (in our case BW on SAP HANA)
 Not captured in BI4 traces – this is found in ST12 and ST13 BIIPTOOLS output
 Query execution time
 Can you add more mandatory prompts to restrict the dataset?
 OLAP calculations
 Can any more calculations be pushed down to HANA?
 OLAP processing: data is sorted and formatted according to query design
 Receive data from OLAP processor and put into transfer structure in BICS interface
 Data transfer from BW to BI Layer
 DSL (WebI) BICS time: data transfer and preparation for WebI usage
40
Analysis of Trace Files — Breakdown of Findings (cont.)
• Don’t forget to account for time measured but not recorded in BI4 traces
 Execution time in HttpWatch always adds up to more than recorded in traces
 A small discrepancy is to be expected
 Includes initial/final communication between client and BI4 platform
 Also includes any client-side processing time
 E.g., work done by browser, Java, etc.
 Anything more than a couple of seconds warrants further investigation
41
Analysis of Trace Files — Points to Consider
• Is the poor performance an intermittent problem?
 Back-end data loading can affect data manager time
 Taking measurements throughout the day may help you pinpoint this
 Refer to earlier section on best practice in testing methodology
• Are clients making full use of all available caching mechanisms?
 Check content design for functions which cause cache to be ignored!
 Refer to http://scn.sap.com/docs/DOC-58532
 See section “Do not (accidentally) disable the cache mechanism of Web Intelligence”
42
Analysis of Trace Files — Points to Consider (cont.)
• Metadata transmission can be expensive
 This may be influenced by content design
 E.g., transient/lean universe generation – Can you reduce number of key fields
and/or characteristics?
 Too many prompt responses can result in high send time in the RFC record
 This may also be influenced by BW configuration
 Activate compression via basXML flag for the relevant BICS FMs affected (e.g.,
BISC_PROV_GET_INITIAL_STATE)
 See SAP Note 1733726
 Available since:
 BW 7.30 SP09
 BW 7.31 SP06
 BW 7.40 SP11
43
Performance Analysis for Some Example Workflows
• Web Intelligence refresh via OLAP BICS to BW on SAP HANA
• Web Intelligence refresh via JDBC to SAP HANA sidecar
• SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA
• AD or SAP logon into BI launchpad
• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA
• SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
44
Web Intelligence Refresh via JDBC to SAP HANA Sidecar
• The methodology we previously described applies here too
 However, data fetch for JDBC is now done by the WIPS itself (INPROC)
 WIPS doesn’t outsource to a “third party” to communicate with the data source
 In previous workflow, data fetch was handled by DSLBridge
 Connection Server (CS) would be used for relational data sources
 Communication with data source is handled by the CS JNI Engine inside the WIPS
 To trace activity in the JNI call stack we must update the cs.cfg file
 Sometimes this is referred to as Connection Server tracing
45
Web Intelligence Refresh via JDBC to SAP HANA Sidecar (cont.)
• cs.cfg file resides at following location:
<boeinstalldir>/dataAccess/connectionServer
 Update the following to enable tracing:
<JavaVM>
<Options>
<Option>-Dtracelog.configfile=<yourFolder>/BO_trace.ini</Option>
<Option>-Dtracelog.logdir=<yourFolder></Option>
<Option>-Dtracelog.name=CSJNIEngine</Option>
</Options>
• If SSO is used, then JDBC will either use XML-based SAML, or Kerberos AD
• Time spent will show in the WIPS and STS output
46
Web Intelligence Refresh via JDBC to SAP HANA Sidecar (cont.)
• The output will be captured in the CSJNIEngine_trace file
• Output looks something like this:
13:46:01.479|+0000|Information| |==| | |CSJNIEngine|14160|1471|Thread-1459
|{|431|4|3|4|BIlaunchpad.WebApp|BOESERVER|webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.proces
sDPCommandsEx|localhost:14160:13844.107885:1|CSJNI.JNIbeforeIncomingCall| BOESERVER START OUTGOING
CALL execute: FROM [CSJNI.JNIbeforeIncomingCall# BOESERVER]-
13:46:01.503|+0000|Information| |==| | |CSJNIEngine|14160|1471|Thread-1459 |}|431|2|3|2|BIlaunchpad.WebApp|
BOESERVER |webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx| BOESERVER
|CSJNI.JNIbeforeIncomingCall| BOESERVER ||CS::JAVA::fetch: 00.025-
13:46:01.505|+0000|Error| |==|E| |CSJNIEngine|14160|1471|Thread-1459 |}|431|3|3|1|BIlaunchpad.WebApp|
BOESERVER |webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx| BOESERVER
|CSJNI.JNIbeforeIncomingCall| BOESERVER ||END INCOMING CALL SPENT [04.029] FROM
[webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx#] TO
[CSJNI.JNIbeforeIncomingCall# BOESERVER]
47
Performance Analysis for Some Example Workflows
• Web Intelligence refresh via OLAP BICS to BW on SAP HANA
• Web Intelligence refresh via JDBC to SAP HANA sidecar
• SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA
• AD or SAP logon into BI launchpad
• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA
• SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
48
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA
• Scenario: User executes Design Studio (DS) content via OpenDocument syntax from HANA
XS portal
 Review content design for complexity, and simplify where possible
 Do separate components sit within one iframe?
 Are any custom (SDK) components being used?
• Key areas for this workflow:
 Enterprise session generation (logon) initiated via OpenDocument call
 JavaScript and other static content processing and cache validation on client side
 Session generation for Analysis Application Service (AAS) on BI4 Platform
 Processing of Design Studio content components including:
 Validate security, retrieve report from File Repository
 Establish JDBC connection to HANA, resolve trust to HANA if SSO being used
 BICS script execution on HANA, data fetching
49
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
Source: SAP
50
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• Use HttpWatch, Fiddler, etc.
 Measures overall execution time as experienced by user
 Importantly, also records the static content downloaded on the client
 Compare initial execution to subsequent executions
 Static content should be cached and reused after initial load
• Check for consistent behavior with different browsers
 Is performance better/worse in IE vs. Chrome?
 Is performance better/worse in different versions of same browser?
• Enable of profiling parameter in the URL which opens your Design Studio content
 Create OpenDoc link with your DS content, add “&profiling=X” to end of OpenDoc URL
 This generates DS statistics on client rendering and Java server time
51
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• In addition, use the SAP Client Plug-in (low setting) to generate trace output – alternatively, enable
Tomcat and Analysis Application Server traces
 Take several measurements to ensure consistent readings and establish baseline/average
 Compare response times for:
 Initial load without client cache:
 New Enterprise session generation for logon to BOE platform (AD SSO into application layer)
 All static content (JavaScript/CSS) must be loaded by the client
 New CMS queries for security validation
 Initial load with client cache:
 New Enterprise session generation for BOE platform (AD SSO into application layer)
 All static content should now be read from local cache
 New CMS queries for security validation
 Subsequent reload with client cache:
 Enterprise session already exists and all static content should now be read from cache
52
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• Find the start and end for your execution in the Tomcat web app output
 12:00:18.950|+0100|Information| |==| | |BIlaunchpad| 4540|1552|http-apr-8443-exec-13|
|1|0|1|0|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER
|BIPSDK.EnterpriseSession:getService| BOESERVER
|com.crystaldecisions.sdk.framework.internal.EnterpriseSession||getService():
service=InfoStore, server=-
 12:00:49.954|+0100|Information| |==| | |BIlaunchpad| 4540| 63|http-apr-8443-exec-
5|}|24|1|0|1|BIlaunchpad.WebApp| BOESERVER |-|-|BIlaunchpad.WebApp| BOESERVER
|HttpServletRequest: 00.046
• This time should match the HttpWatch total time
 Difference between start of first request and end of final request should match time
recorded in HttpWatch
 Very easy to find this in traces if using SAP Client Plug-in, as transactions are tagged
 Remember – a small discrepancy to be expected
53
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• Now bring results together to consider end-to-end workflow
 AAS from BI4 Platform
 Tomcat web app trace from SAP HANA XS
 BICS profiling output (Java statistics)
 HttpWatch capture
• If using the SAP Client Plug-in, use the correlationID (in businesstransaction.xml) to filter
out background noise and see only relevant activity inside BI4 Platform traces
• When you’re looking for potential bottleneck, start by zooming into the most time-
consuming calls
54
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• “Int.do” in HttpWatch trigger BICS script execution/data fetch on SAP HANA
 15.12s recorded in HttpWatch
+ 23.094 15.120 3892 6442 POST 200 html https:// BOESERVER
/BOE/portal/1502261134/zenwebclient/int.do
• This triggers main executeBIRequest function – which can be seen in AAS traces
 14.83s recorded in trace files (remember: small discrepancy always expected)
12:00:28.121|+0100|Debug| |<<| | | BOESERVER.AnalysisApplicationServer|13296|157637|Transport:Shared-1439/56|
|23|1|1|1|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER|.executeBIRequest|
BOESERVER|||||interface com.sap.ip.bi.base.application.IApplication|BI-RA-AD|[BICS HANA]Fetch members for
characteristic EVENT_DESCRIPTION-
12:00:42.954|+0100|Debug| |<<| | | BOESERVER|13296|157637|Transport:Shared-1439/56|
|23|1|1|1|BIlaunchpad.WebApp| BOESERVER|BIlaunchpad.WebApp| BOESERVER |.executeBIRequest|
BOESERVER|0|||||interface com.sap.ip.bi.base.application.IApplication|BI-RA-AD|[BICS HANA](14833ms) Get the
crosstab data (GET_CROSSTAB_DATA)-
55
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• Most transactions occur within the executeBIRequest call. Here is the start of the main
executeBIRequest:
12:00:21.847|+0100|Information| |==| | |aps_ACC_PROC_2.AnalysisApplicationService| 3744|184296|Transport:Shared-
1170/56|{|383|1|1|2|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |.START OUTGOING CALL
Outgoing: FROM [.executeBIRequest# BOESERVER
• Here is a call which is triggered by executeBIRequest, and has been “outsourced” by the
AAS to the Security Token Server (STS) – this call resolves SSO (SAML, in this example):
12:00:21.972|+0100|Information| |==| | |aps_ACC_PROC_2.AnalysisApplicationService| 3744|184296|Transport:Shared-
1170/56|}|411|0|1|2|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |.executeBIRequest| BOESERVER
END OUTGOING CALL Outgoing: SPENT [00.255] FROM [.executeBIRequest# BOESERVER] TO
[.getSAMLSSOResponseByHostAndPort# BOESERVER ]-
• There are many smaller operations (e.g., creation of controller session, fetching of BIAPP
through CORBA layer, creation of components), all accounting for tiny amounts of time
 Only look for expensive calls when looking for bottlenecks
 Adding up expensive calls will account for vast majority of measured execution time
 The sum of all the smaller calls makes up the majority of the “missing” time
56
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• HttpWatch recorded total execution time of 30.97s
 This comprises
 Enterprise session generation (logon) via BI launchpad web app: 4.2s
 Client-side JavaScript loading, cache validation, load supporting files: 6.8s
 Session generation for AAS (including security calls/InfoStore and CMS time): ~1s
 Processing of Design Studio report components: 18.6s
 Processing DS report components can be broken down as follows:
 Validate security: 0.5 sec
 Set Template: 1.5 sec
 Retrieve report from File Repository: 0.3 sec
 Establish JDBC connection to HANA: 0.25 sec
 Resolve trust to HANA for SSO: 0.25 sec
 Process command before rendering: 1 sec
 BICS script execution on HANA and data fetching: 14.8 sec
57
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• Compression can have a significant impact on initial load time
 Be aware of existing product defect ADAPT01704289
 Refer to SAP Note 1906557 – Tomcat crash due to EXCEPTION_ACCESS_VIOLATION in the
zip.dll with Java_java_util_zip_ZipEntry_initFields *
 SAP has identified root cause as a bug in JVM/Tomcat
 To overcome this issue, use latest SAP JVM 6.1 Patch Collection 65 (build 6.1.070)
 Confirm that this SAP JVM is compatible with your version of BI4
• Parallel processing for Design Studio
 To prevent deadlocks, Design Studio uses a Java-based version of BICS
 Prior to version 1.5, DS could only process sequentially
 Parallel processing available since version 1.5
 Apply SP2 to resolve parallel processing bug when using SDK components
* Requires login credentials to the SAP Service Marketplace
58
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• Be aware of:
 Cache validation has a significant impact on initial load time
 Cache-Control is configured to 10 years and used in combination with a “Last-
modified” property
 After AAS restart, last modified time gets updated
 In a clustered BI4 environment (i.e., multiple AAS on different nodes), last modified
property won’t be exactly the same across all nodes, due to different AAS restart
timestamps
 This results in client browser cache being ignored!
 Every time the content is opened it is treated as an initial load – incurs major penalty!
 SAP improved Design Studio at 1.3 SP2 to improve the way it handles static content
59
SAP BusinessObjects Design Studio Refresh via JDBC BICS to
SAP HANA (cont.)
• Be aware of: (cont.)
 If using custom SDK components, initial response time may seem excessive
 Gathering resources (static content) from SDK components takes longer than normal
 This is because SDK components are stored in the BI4 as repository objects
(BLOBS)
 Resultant processing in the web tier represents an additional overhead
 Resources only need to be fetched once – and then can be cached
 They are subsequently read from cache, improving response times for users
60
SAP BusinessObjects Design Studio — Analysis of Trace Files
• Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files
 Take a look at profiling statistics
 Illustrate limitations of profiling statistics
• Analyze time spent in different parts of the workflow
 Identify time spent inside the product
 See breakdown of time spent inside data source
• Identify areas of concern that warrant further investigation
• Summarize time spent performing individual functions
 What are the most expensive functions?
 Can we change something in the design to improve performance?
 Are there factors outside the dashboard that we can investigate?
• This is taken from a real-life example
61
Performance Analysis for Some Example Workflows
• Web Intelligence refresh via OLAP BICS to BW on SAP HANA
• Web Intelligence refresh via JDBC to SAP HANA sidecar
• SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA
• AD or SAP logon into BI launchpad
• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA
• SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
62
AD or SAP Logon into BI Launchpad
• Each authentication type has its own plug-in
 There are client-side SDK plug-ins and server-side (CMS) plug-ins
 Client tools may also use web services, etc.
• User logon is initiated by client-side plug-in
 Handshake occurs between the client-side and the CMS plug-ins
 On successful handshake, the CMS permits logon
• Plug-ins may need to perform different functions, depending on authentication type
 Regardless of authentication type, CMS security sub-system performs the following:
 Ensures user count does not exceed the maximum allowed for current license key
 Creates a session InfoObject and increments the license count
 Creates the logon token InfoObject (a unique string instead of username/password)
 Optionally creates the user InfoObject if it does not already exist
 This depends on settings in Authentication tab in CMC
63
AD or SAP Logon into BI Launchpad (cont.)
• Enterprise authentication logon requires the secEnterprise client-side plug-in
 Plug-in encrypts the username and password
 Plug-in stores this in a security buffer, and hands the security buffer to CMS
 CMS security sub-system calls the object sub-system to verify user InfoObject exists
and password matches
 If these criteria are satisfied and security permits, then user is allowed to log on
• AD authentication logon requires the secWinAD client-side plug-in
 Queries the Domain Controller (DC) to authenticate the user
 On successful authentication, a token from DC gets passed to the server-side
secWinAD plug-in on CMS
 Server-side plug-in verifies group membership by searching through group graph
 Group graph includes information about User Groups and how they relate to each other
64
AD or SAP Logon into BI Launchpad (cont.)
• Use case scenario: users report very slow into BI Platform
 With use of a viewer like HttpWatch, monitor HTTP(S) traffic on the client
 For each call you can see execution time in seconds, which protocol used, bytes
received, and if static content is read from the cache
 In the example above, a particular call stands out: Vintela request
 https://BOEserver:8443/BOE/portal/1502261134/BIPCoreWeb/VintelaServlet?vint_bac
kURL=%2FInfoView%2Flogon.faces&vint_cms=%40bi4-CMS
65
AD or SAP Logon into BI Launchpad (cont.)
• Use SAP Client Plug-in to trace the workflow
 We see one call taking nearly 10s to get a response
 Make use of network analysis tool (e.g., Wireshark) to inspect traffic during that call
 In this real-life example, a network utility (Nbtstat) revealed a NetBIOS packet querying for a
computer name
 Problem was caused by poor server-side WINS configuration, and initial NetBIOS request timing out for
each of the 3 NICs before eventually coming back
66
AD or SAP Logon into BI Launchpad (cont.)
• WINS determines the IP address associated with a particular network computer
 After disabling WINS on all NICs, Nbtstat failed immediately – did not expire/time out
 With no NetBIOS queries left pending, SSO logon was no longer held up
• WINS – NetBIOS over TCP/IP – LMHOSTS are mainly for legacy NetBIOS-based apps
• SAP BusinessObjects does not require NetBIOS for authentication, and name resolution
should always use DNS
67
AD or SAP Logon into BI Launchpad — Analysis of Trace Files
• Use a range of tools to review relevant trace files and other information
• Analyze time spent in different parts of the workflow
• Identify areas of concern that warrant further investigation
• Summarize time spent performing individual activities
 What are the most expensive actions?
 Can we change something in the design to improve
performance?
 Are there factors outside BI4 that we can investigate?
• This is taken from a real-life example
68
Performance Analysis for Some Example Workflows
• Web Intelligence refresh via OLAP BICS to BW on SAP HANA
• Web Intelligence refresh via JDBC to SAP HANA sidecar
• SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA
• AD or SAP logon into BI launchpad
• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA
• SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
69
OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to
BW on SAP HANA
• In this section, we investigate performance of Analysis, edition for OLAP (aOLAP)
• aOLAP is designed for query and analysis rather than reporting
 Works against multi-dimensional data sources
 Limited formatting capability – normally used for generating tabular “workspaces”
• The multi-dimensional analysis server (MDAS) handles aOLAP workspaces
 MDAS is hosted by an Adaptive Processing Server (APS)
• For a typical aOLAP refresh via BICS to BW on SAP HANA, we see interaction between
various layers and servers using same methodology as previously discussed
 For process operations outside the BI4 platform, use BW statistics, ST12, etc.
 BW statistics and ST12 provide extra detail that can’t be recorded in the BI4 traces
70
OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to
BW on SAP HANA (cont.)
• Total execution time (e.g., from HttpWatch) will comprise:
 CMS time (and STS time, if using SSO to BW)
 MDAS function calls for query execution (BICS calls)
 Database processing:
 HANA DB retrieval times (depending on how much data the query asks for)
 OLAP Calculations (most calculations will be processed in OLAP)
 Check possibility to push down to HANA
 OLAP processing time
 BICS interface (BI/BW)
 Data transfer from BW to BI Layer
 Display in BI launchpad and client rendering time
71
OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to
BW on SAP HANA (cont.)
• BW back-end statistics for aOLAP workflows can be generated by enabling BICS profiling
 This is controlled via a properties file on the BOE server running the MDAS service:
<BOE install dir>javapjsservicesMDASresourcescombusinessobjectsmultidimensionalservicesmdas.properties
• If multidimensional.services.bics.profiling.enabled is set to true:
 OLAP statistics in table RSDDSTAT_OLAP are generated
 Data Manager statistics in table RSDDSTAT_DM are generated
• This means a RSBOLAP_BICS_STATISTIC_INFO function for almost every activity
 This can have a significant impact on aOLAP performance as experienced by
end users!
 E.g., time taken to display a prompt to the user: we measured 11.5s with and 5s without profiling
 E.g., time taken to execute a data fetch: we measured 45s with and 32s without profiling
72
OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to
BW on SAP HANA (cont.)
• When a BEx query is connected to multiple sheets in an aOLAP workspace, check that
aOLAP is only loading the active tab
• MDAS may perform the loadQuery for ALL tabs, having huge impact on response times
• Below is an example of a workspace containing 12 sheets:
 There is only one getRepresentation call
 But the MDAS issues a loadQuery for all 11 (inactive) sheets too!
 SAP Development Group provided code optimization via ADAPT01730767 to address
the overhead in the call stack when using multi-tabs
73
Performance Impact of “Lazy Loading” #1
• aOLAP can be configured to always load queries when workspace is opened, or only load
queries when explicitly requested by user interaction
 Only loading when asked is referred to by SAP as “lazy loading”
• To enable lazy loading, make a configuration change in the mdaclient.properties file on
the server running Tomcat:
 #Configure whether queries are lazy loaded when first accessed to retrieve data or
preloaded when the workspace is opened.#query.lazyload=false
74
Performance Impact of “Lazy Loading” #2
• There is another configuration setting on the MDAS stack that SAP refers to as “lazy
loading”
 Lazy loading also means to prevent pre-load of metadata from BW with MDAS
 Controls whether metadata hierarchies and attributes are pre-loaded all at once or are
lazy loaded when their dimension is expanded by the user
 To enable pre-load of metadata, make a configuration change in mdas.properties
 multidimensional.services.preload.metadata=true
• Both lazy loading options should be assessed for potential performance gains
75
Other Performance Considerations
• If you take an aOLAP workspace from BI4.0 and open it in BI4.1, an in-situ upgrade of the
internal workspace takes place to allow for new capabilities delivered with BI4.1
 Upgrade causes several seconds delay when first opening the workspace in BI4.1
 Happens each time the workspace is opened in BI4.1 until upgraded version is saved
 After an upgrade, ask users to open and then save the workspace
 The in-situ upgrade will not happen again
76
Other Performance Considerations (cont.)
• Maximum Member Selector Size and Member Selector Cache Limit tuning
• Maximum Member Selector Size
 Maximum Member Selector Size is set to 100,000 by default and acts as a safety
belt limit
 Regardless of how many members exist, we never fetch more than this number
of members
 E.g., if this is set to 500, then in the first SQL statement you will find out if there are
more than 500 entries
• Member Selector Cache Limit
 If Maximum Member Selector Size is less than or equal to Member Selector Cache Limit
then members will be cached in MDAS for faster access on future queries
 This is only applicable in flattened hierarchies
77
OLAP Refresh via OLAP BICS — Analysis of Traces
• Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files
• Highlight our concern in trace files to build a case for SAP Support
 Clearly demonstrate our problem
 Explain why it is a problem
• This is outside of our control
 What happens now?
• What was the final outcome?
• This is taken from a real-life example
78
Performance Analysis for Some Example Workflows
• Web Intelligence refresh via OLAP BICS to BW on SAP HANA
• Web Intelligence refresh via JDBC to SAP HANA sidecar
• SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA
• AD or SAP logon into BI launchpad
• OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA
• SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
79
SAP BusinessObjects Analysis, edition for Microsoft Office Refresh
Against BW
• While users may view the software favorably, the product has its own challenges
 Software is not necessarily managed centrally (unless rolled out via Group Policy, etc.)
 SAP BI administrators are not normally the same team as those pushing out software via GPO
 Hence, rolling out software tends to need coordination between SAP BI Admins and, e.g., AD team
 This can complicate the upgrade process for large deployments … but can also introduce difficulties
for performance troubleshooting
• Software is a full client, running almost entirely outside the control of BI Admins
 Dependent on hardware spec, also affected by what’s currently running on the PC
 Contention for resources on client side will impact performance
 What else is currently using memory and CPU resource? Are a lot of applications already running?
 Typically BI Admins have no control – or visibility – on what is running on client PC
 Client location/network is also a major contributing factor to performance
 Data must be returned to a client PC rather than be served from a central, dedicated environment
80
SAP BusinessObjects Analysis, edition for Microsoft Office Refresh
Against BW (cont.)
• Performance considerations
 Compression: set basXML flag on all relevant function modules on BW side
 SE37  Input the function module  check on Attributes tab  basXML
 If possible, consider limiting cells returned
 Refer to https://launchpad.support.sap.com/#/notes/2083067 *
 Back-end query optimization – limit/reduce number of objects in query
 Metadata transmission can get very expensive!
 Where possible, create dedicated (smaller) queries for each use case
 Becomes a trade-off between maintenance overhead and performance
 Content runs more slowly after upgrade from 1.x to 2.x version?
 Open, refresh, save content using upgraded software
 Content undergoes in-situ upgrade, to leverage new software features
* Requires login credentials to the SAP Service Marketplace
81
SAP BusinessObjects Analysis, edition for Microsoft Office —
Analysis of Traces
• Use standard tools to review trace files
• Identify areas of concern that warrant further investigation
 Investigate time spent outside product
 Drill into time spent inside data source
• What are the most expensive activities?
• Can we change something in the design to improve performance?
• Where can we go next to improve performance?
• This is taken from a real-life example
82
What We’ll Cover
• What is performance?
• Best practice when measuring performance – controlled and consistent testing
• Tools to use to interpret the data, and accounting for time spent in each processing layer
• Performance analysis for some example workflows
• Wrap-up
83
Where to Find More Information
• Toby Johnston, “BI Platform E2E tracing with Solution Manager E2E Trace Analysis” (SCN, September 2013).
 http://wiki.scn.sap.com/wiki/display/BOBJ/BI+Platform+E2E+tracing+with+Solution+Manager+E2E+Trace+Analysis
• Matthew Shaw, “Standard BI Platform log tracing” (SCN, January 2016).
 http://wiki.scn.sap.com/wiki/display/BOBJ/Standard+BI+Platform+log+tracing
• SAP, “2103024 – *** MASTER NOTE *** How To Trace Business Objects 4.0 and 4.1 (Servers and Clients)” (SAP,
December 2015).
 http://service.sap.com/sap/support/notes/2103024 *
• Toby Johnston, “Wily Introscope for BI Platform 4.0: Why it is important and how to get started” (SCN, August 2012).
 http://scn.sap.com/community/bi-platform/remote-supportability/blog/2012/08/06/an-administrators-match-made-in-
heaven-extend-your-bi-platform-40-monitoring-capabilities-with-wily-introscope
• “Tutorials – SAP Business Intelligence Platform 4.x” (SCN, April 2017).
 http://scn.sap.com/docs/DOC-8292
 Process flows for SAP BusinessObjects 4.x
• Appendix 1: Anatomy of the Web Intelligence Processing Server
* Requires login credentials to the SAP Service Marketplace
84
Where to Find More Information (cont.)
• Kurt Holst, “How to Performance Optimize SAP BusinessObjects Reports Based Upon SAP BW
using BICS Connectivity” (SCN, September 2013).
 https://archive.sap.com/documents/docs/DOC-33706
• Jonathan Brown, “Tips for Optimizing the Performance of Web Intelligence Documents” (SCN,
September 2016).
 https://wiki.scn.sap.com/wiki/display/BOBJ/Tips+for+Optimizing+the+Performance+of+Web+Int
elligence+Documents
• Deepak Kumar Shah, “Analysis for Office 2.x – Data Cells Limit and Memory Consumption” (SCN,
May 2017).
 https://wiki.scn.sap.com/wiki/display/BI/Analysis+for+Office+2.x+-+Data+Cells+Limit+
and+Memory+Consumption
85
7 Key Points to Take Home
• Simplify and isolate your workflow, and get a consistent baseline measurement
• Examine which processing layers are involved, and understand how the various layers
interact with each other
• Use the best tools to gather traces for the problem workflow and simplify your analysis
• Break down the total runtime into different processing layers to see where the holdup is
• Don’t forget that delays can occur outside the traces, e.g., in end-user laptop!
• Verify if active concurrency, data volumes, or core processing play a factor in
performance degradation
• If appropriate, then embark on a tuning exercise based on your findings
 Challenge user requirements – outline/demonstrate benefit of a smaller BEx query!
 Review server resources, consider distribution and/or configuration changes
 If necessary, raise a Support case to highlight inefficient/incorrect product behavior
86
How to contact me:
Dan Goodinson
dan.goodinson@bibrainz.com
Please remember to complete your session evaluation
Your Turn!
87
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other
countries. All other product and service names mentioned are the trademarks of their respective companies. Wellesley Information Services is neither owned nor controlled by SAP SE.
Disclaimer
Wellesley Information Services, 20 Carematrix Drive, Dedham, MA 02026 Copyright © 2017 Wellesley Information Services.
All rights reserved.

More Related Content

What's hot

Monitoring and Measuring SharePoint to Guarantee Your ROI
Monitoring and Measuring SharePoint to Guarantee Your ROIMonitoring and Measuring SharePoint to Guarantee Your ROI
Monitoring and Measuring SharePoint to Guarantee Your ROIChristian Buckley
 
SharePoint and the Lean Enterprise
SharePoint and the Lean EnterpriseSharePoint and the Lean Enterprise
SharePoint and the Lean EnterpriseDave Healey
 
Session 1 Pdf slide notes business dashboard presentation
Session 1 Pdf slide notes business dashboard presentationSession 1 Pdf slide notes business dashboard presentation
Session 1 Pdf slide notes business dashboard presentationIMA Columbia Chapter
 
SharePoint and Digital Transformation
SharePoint and Digital TransformationSharePoint and Digital Transformation
SharePoint and Digital TransformationMatthew W. Bowers
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30Roger Snook
 
DBA Role Shift in a DevOps World
DBA Role Shift in a DevOps WorldDBA Role Shift in a DevOps World
DBA Role Shift in a DevOps WorldDatavail
 
Executive Dashboard Design on Tableau
Executive Dashboard Design on TableauExecutive Dashboard Design on Tableau
Executive Dashboard Design on TableauMethod360
 
Planning Central
Planning CentralPlanning Central
Planning CentralInspirage
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentBill Ayers
 
SPTechCon Austin - The Slippery Slope of SharePoint Migrations
SPTechCon Austin - The Slippery Slope of SharePoint MigrationsSPTechCon Austin - The Slippery Slope of SharePoint Migrations
SPTechCon Austin - The Slippery Slope of SharePoint MigrationsJill Hannemann
 
Inspirage Rapid Start: S&OP Webinar - April 2014
Inspirage Rapid Start: S&OP Webinar - April 2014Inspirage Rapid Start: S&OP Webinar - April 2014
Inspirage Rapid Start: S&OP Webinar - April 2014Inspirage
 
Powerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with NintexPowerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with NintexNetwoven Inc.
 
Best Practices for Salesforce Data Access
Best Practices for Salesforce Data AccessBest Practices for Salesforce Data Access
Best Practices for Salesforce Data AccessSalesforce Developers
 
Project Summit Burlington Visio, Microsoft Excel, Power Bi, Flow
Project Summit Burlington Visio, Microsoft Excel, Power Bi, FlowProject Summit Burlington Visio, Microsoft Excel, Power Bi, Flow
Project Summit Burlington Visio, Microsoft Excel, Power Bi, FlowVincent Polito
 
Every kpi dashboard list
Every kpi dashboard listEvery kpi dashboard list
Every kpi dashboard listzainksa
 
Putting Predictive Planning to Work
Putting Predictive Planning to WorkPutting Predictive Planning to Work
Putting Predictive Planning to WorkJoseph Alaimo Jr
 
Kanban PMO v3.0 - How to use Kanban to bring sanity to your PMO
Kanban PMO v3.0 - How to use Kanban to bring sanity to your PMOKanban PMO v3.0 - How to use Kanban to bring sanity to your PMO
Kanban PMO v3.0 - How to use Kanban to bring sanity to your PMOJose Casal-Gimenez FBCS CITP
 

What's hot (20)

Monitoring and Measuring SharePoint to Guarantee Your ROI
Monitoring and Measuring SharePoint to Guarantee Your ROIMonitoring and Measuring SharePoint to Guarantee Your ROI
Monitoring and Measuring SharePoint to Guarantee Your ROI
 
SharePoint and the Lean Enterprise
SharePoint and the Lean EnterpriseSharePoint and the Lean Enterprise
SharePoint and the Lean Enterprise
 
Benefits of EPM
Benefits of EPMBenefits of EPM
Benefits of EPM
 
Session 1 Pdf slide notes business dashboard presentation
Session 1 Pdf slide notes business dashboard presentationSession 1 Pdf slide notes business dashboard presentation
Session 1 Pdf slide notes business dashboard presentation
 
SharePoint and Digital Transformation
SharePoint and Digital TransformationSharePoint and Digital Transformation
SharePoint and Digital Transformation
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30
 
DBA Role Shift in a DevOps World
DBA Role Shift in a DevOps WorldDBA Role Shift in a DevOps World
DBA Role Shift in a DevOps World
 
Executive Dashboard Design on Tableau
Executive Dashboard Design on TableauExecutive Dashboard Design on Tableau
Executive Dashboard Design on Tableau
 
Planning Central
Planning CentralPlanning Central
Planning Central
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
 
SPTechCon Austin - The Slippery Slope of SharePoint Migrations
SPTechCon Austin - The Slippery Slope of SharePoint MigrationsSPTechCon Austin - The Slippery Slope of SharePoint Migrations
SPTechCon Austin - The Slippery Slope of SharePoint Migrations
 
Inspirage Rapid Start: S&OP Webinar - April 2014
Inspirage Rapid Start: S&OP Webinar - April 2014Inspirage Rapid Start: S&OP Webinar - April 2014
Inspirage Rapid Start: S&OP Webinar - April 2014
 
Powerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with NintexPowerful and Quick Workflow Automation Solutions with Nintex
Powerful and Quick Workflow Automation Solutions with Nintex
 
Best Practices for Salesforce Data Access
Best Practices for Salesforce Data AccessBest Practices for Salesforce Data Access
Best Practices for Salesforce Data Access
 
Project Summit Burlington Visio, Microsoft Excel, Power Bi, Flow
Project Summit Burlington Visio, Microsoft Excel, Power Bi, FlowProject Summit Burlington Visio, Microsoft Excel, Power Bi, Flow
Project Summit Burlington Visio, Microsoft Excel, Power Bi, Flow
 
Every kpi dashboard list
Every kpi dashboard listEvery kpi dashboard list
Every kpi dashboard list
 
Putting Predictive Planning to Work
Putting Predictive Planning to WorkPutting Predictive Planning to Work
Putting Predictive Planning to Work
 
Kanban PMO v3.0 - How to use Kanban to bring sanity to your PMO
Kanban PMO v3.0 - How to use Kanban to bring sanity to your PMOKanban PMO v3.0 - How to use Kanban to bring sanity to your PMO
Kanban PMO v3.0 - How to use Kanban to bring sanity to your PMO
 
Being agile with SharePoint
Being agile with SharePointBeing agile with SharePoint
Being agile with SharePoint
 

Similar to An In-Depth Look at Pinpointing and Addressing Sources of Performance Problems in Your SAP BusinessObjects BI Reports and Dashboards

Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10Harsha Gowda B R
 
Aayush Sinha_8.4Yrs_PO_BA
Aayush Sinha_8.4Yrs_PO_BAAayush Sinha_8.4Yrs_PO_BA
Aayush Sinha_8.4Yrs_PO_BAaayush sinha
 
Best Practices and Lessons Learned on Our IBM Rational Insight Deployment
Best Practices and Lessons Learned on Our IBM Rational Insight DeploymentBest Practices and Lessons Learned on Our IBM Rational Insight Deployment
Best Practices and Lessons Learned on Our IBM Rational Insight DeploymentMarc Nehme
 
How to Successfully Implement Cognos Self-Service
How to Successfully Implement Cognos Self-ServiceHow to Successfully Implement Cognos Self-Service
How to Successfully Implement Cognos Self-ServiceSenturus
 
Movin’ On Up - A #SharePoint Migration Case Study #HSPUG
Movin’ On Up - A #SharePoint Migration Case Study #HSPUGMovin’ On Up - A #SharePoint Migration Case Study #HSPUG
Movin’ On Up - A #SharePoint Migration Case Study #HSPUGJim Adcock
 
Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...
Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...
Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...Jouko Nyholm
 
Big Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesBig Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesRob Winters
 
Work smarter using sharepoint 2010 misa version2
Work smarter using sharepoint 2010 misa version2Work smarter using sharepoint 2010 misa version2
Work smarter using sharepoint 2010 misa version2Howard Forder
 
Bi Capacity Planning
Bi Capacity PlanningBi Capacity Planning
Bi Capacity Planningmstmike
 
Success with SharePoint
Success with SharePointSuccess with SharePoint
Success with SharePointStoverEffect
 
Transitioning our Toolkit
Transitioning our ToolkitTransitioning our Toolkit
Transitioning our ToolkitIIBA UK Chapter
 
OpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting StartedOpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting Starteddjazayeri
 
Priti - ETL Engineer
Priti - ETL EngineerPriti - ETL Engineer
Priti - ETL Engineerpriti kumari
 
Tampa Bay Microsoft BI User Group July 9 2012
Tampa Bay Microsoft BI User Group July 9 2012Tampa Bay Microsoft BI User Group July 9 2012
Tampa Bay Microsoft BI User Group July 9 2012Bloom Consulting
 
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)Salesforce Partners
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringVanessa Turke
 
2013 SharePoint Fest DC - Build a SharePoint Intake/Request List
2013 SharePoint Fest DC - Build a SharePoint Intake/Request List2013 SharePoint Fest DC - Build a SharePoint Intake/Request List
2013 SharePoint Fest DC - Build a SharePoint Intake/Request ListWes Preston
 
15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projectsDocFluix, LLC
 

Similar to An In-Depth Look at Pinpointing and Addressing Sources of Performance Problems in Your SAP BusinessObjects BI Reports and Dashboards (20)

Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10Nw2008 tips tricks_edw_v10
Nw2008 tips tricks_edw_v10
 
Aayush Sinha_8.4Yrs_PO_BA
Aayush Sinha_8.4Yrs_PO_BAAayush Sinha_8.4Yrs_PO_BA
Aayush Sinha_8.4Yrs_PO_BA
 
Rohit Resume
Rohit ResumeRohit Resume
Rohit Resume
 
Best Practices and Lessons Learned on Our IBM Rational Insight Deployment
Best Practices and Lessons Learned on Our IBM Rational Insight DeploymentBest Practices and Lessons Learned on Our IBM Rational Insight Deployment
Best Practices and Lessons Learned on Our IBM Rational Insight Deployment
 
How to Successfully Implement Cognos Self-Service
How to Successfully Implement Cognos Self-ServiceHow to Successfully Implement Cognos Self-Service
How to Successfully Implement Cognos Self-Service
 
Movin’ On Up - A #SharePoint Migration Case Study #HSPUG
Movin’ On Up - A #SharePoint Migration Case Study #HSPUGMovin’ On Up - A #SharePoint Migration Case Study #HSPUG
Movin’ On Up - A #SharePoint Migration Case Study #HSPUG
 
Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...
Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...
Power BI Governance and Development Best Practices - Presentation at #MSBIFI ...
 
Big Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesBig Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil Games
 
Work smarter using sharepoint 2010 misa version2
Work smarter using sharepoint 2010 misa version2Work smarter using sharepoint 2010 misa version2
Work smarter using sharepoint 2010 misa version2
 
Bi Capacity Planning
Bi Capacity PlanningBi Capacity Planning
Bi Capacity Planning
 
Success with SharePoint
Success with SharePointSuccess with SharePoint
Success with SharePoint
 
Transitioning our Toolkit
Transitioning our ToolkitTransitioning our Toolkit
Transitioning our Toolkit
 
OpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting StartedOpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting Started
 
Priti - ETL Engineer
Priti - ETL EngineerPriti - ETL Engineer
Priti - ETL Engineer
 
Tampa Bay Microsoft BI User Group July 9 2012
Tampa Bay Microsoft BI User Group July 9 2012Tampa Bay Microsoft BI User Group July 9 2012
Tampa Bay Microsoft BI User Group July 9 2012
 
Project report
Project report Project report
Project report
 
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements Gathering
 
2013 SharePoint Fest DC - Build a SharePoint Intake/Request List
2013 SharePoint Fest DC - Build a SharePoint Intake/Request List2013 SharePoint Fest DC - Build a SharePoint Intake/Request List
2013 SharePoint Fest DC - Build a SharePoint Intake/Request List
 
15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects15 tips for bullet proof requirements analysis on SharePoint projects
15 tips for bullet proof requirements analysis on SharePoint projects
 

Recently uploaded

Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...ThinkInnovation
 
Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...
Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...
Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...HyderabadDolls
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareGraham Ware
 
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts ServiceCall Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Servicenishakur201
 
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...kumargunjan9515
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...HyderabadDolls
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...nirzagarg
 
Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...
Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...
Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...HyderabadDolls
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numberssuginr1
 
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...HyderabadDolls
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubaikojalkojal131
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...gajnagarg
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...gajnagarg
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?RemarkSemacio
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...HyderabadDolls
 

Recently uploaded (20)

Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
 
Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...
Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...
Lake Town / Independent Kolkata Call Girls Phone No 8005736733 Elite Escort S...
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham Ware
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts ServiceCall Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
Call Girls In GOA North Goa +91-8588052666 Direct Cash Escorts Service
 
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...Top Call Girls in Balaghat  9332606886Call Girls Advance Cash On Delivery Ser...
Top Call Girls in Balaghat 9332606886Call Girls Advance Cash On Delivery Ser...
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
 
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
Top profile Call Girls In Bihar Sharif [ 7014168258 ] Call Me For Genuine Mod...
 
Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...
Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...
Belur $ Female Escorts Service in Kolkata (Adult Only) 8005736733 Escort Serv...
 
Statistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbersStatistics notes ,it includes mean to index numbers
Statistics notes ,it includes mean to index numbers
 
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
Kalyani ? Call Girl in Kolkata | Service-oriented sexy call girls 8005736733 ...
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubai
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
 
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
Top profile Call Girls In dimapur [ 7014168258 ] Call Me For Genuine Models W...
 
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
 
Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?
 
Abortion pills in Doha {{ QATAR }} +966572737505) Get Cytotec
Abortion pills in Doha {{ QATAR }} +966572737505) Get CytotecAbortion pills in Doha {{ QATAR }} +966572737505) Get Cytotec
Abortion pills in Doha {{ QATAR }} +966572737505) Get Cytotec
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
Call Girls in G.T.B. Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in G.T.B. Nagar  (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in G.T.B. Nagar  (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in G.T.B. Nagar (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
 

An In-Depth Look at Pinpointing and Addressing Sources of Performance Problems in Your SAP BusinessObjects BI Reports and Dashboards

  • 1. Produced by Wellesley Information Services, LLC, publisher of SAPinsider. © 2017 Wellesley Information Services. All rights reserved. An In-Depth Look at Pinpointing and Addressing Sources of Performance Problems in Your SAP BusinessObjects BI Reports and Dashboards Dan Goodinson BI Brainz
  • 2. 1 In This Session • Leverage controlled and consistent testing methodologies to ensure effective performance measurement • Determine where time is spent during various workflows and get to the bottom of performance complaints and improve the experience for end users • Use a variety of dedicated tools for collecting traces, and learn how to read and find information in the output trace files • Delays can have unexpected root causes; see how to identify performance bottlenecks with real-life examples, as well as how different components in the architectural workflow can influence execution times • Pinpoint the cause of poor response times in reports and dashboards – whether it’s front- end report design, server resources/configuration, back-end data execution, or specific product code calls that require optimization
  • 3. 2 What We’ll Cover • What is performance? • Best practice when measuring performance – controlled and consistent testing • Tools to use to interpret the data, and accounting for time spent in each processing layer • Performance analysis for some example workflows • Wrap-up
  • 4. 3 What Is Performance? • In this brief introductory section, we will:  Realize that performance can mean different things to different users  Learn and understand users’ expectations  Understand user requirements and the perception of performance  Align expectations – room for compromise?  Look at a case study – BEx web templates to SAP BusinessObjects BI4
  • 5. 4 Performance Can Mean Different Things to Different People • Does performance mean that a document opens quickly?  Can we load most important data first, and then load other data in the background?  Can we load data on demand (i.e., only when user looks at it) to improve initial opening time? • Does performance mean having a document refresh quickly?  Can we challenge the amount of data being loaded – does the user really need all that data? • Does performance mean making quick or smooth navigation within a document?  Trade-off between background “lazy loading” or on-demand vs. fast initial opening  What is quick? What is smooth? • What is the user expectation, and why?
  • 6. 5 Learn and Understand Users’ Expectations • When, where, and how was the expectation set? (Example 1)  Was expectation set by the sales person or consultant?  What was the sales pitch based on?  Was a demo done against real data? Was it done against your data? • How does this help us?  Learn what users bought into – then at least we know what we need to achieve/exceed  Can the presales team still help us? Perhaps they can clarify product capabilities? • Which tools were proffered – were they the most suitable tools for the task at hand?  There is rarely a one-size-fits-all solution  SAP BusinessObjects offers a comprehensive suite of tools – choose the right tools for the job!  But remember – user requirements may conflict with best-fit tool selection  E.g., users may say they want ad hoc analysis against OLAP data, but may prioritize rich formatting  In such a case, WebI (rich formatting) may have to be selected over aOLAP (ad hoc analysis) WebI = SAP BusinessObjects Web Intelligence
  • 7. 6 Learn and Understand Users’ Expectations (cont.) • When, where, and how was the expectation set? (Example 2)  Is user making a comparison against some benchmark?  Legacy system?  Outgoing tools and/or technology?  Different data source, different hardware environment, different version of the report?  Is a fair comparison being made?  To be fair, a comparison should be “like for like”!  Same front-end functionality?  Same back-end data structures, queries, etc.?  Same volume of data?  Same software versions?
  • 8. 7 User Requirements and Perception of Performance • Let’s assume performance means “I want my document to open quickly”  End user wants everything ready as soon as they open a document … but it’s not possible to view all report elements at once  Can we prioritize which parts load first?  Design dictates that a given report opens on a particular page, e.g., overview/summary page  What if we only load data for the initial page on first use … and load data for other pages after that, or maybe even load other data on demand?  On demand or “lazy loading” – why take a performance hit loading data users may not even view? • This are “smoke and mirrors” – but it may be a way to give users what they want  We’re not altering performance as such, just the users’ perception of performance  This technique is particularly relevant for SAP BusinessObjects Design Studio  Check out following SAP blog article for more information https://blogs.sap.com/2015/05/22/design-studio-performance-best-practices/
  • 9. 8 User Requirements and Perception of Performance (cont.) • Let’s assume performance means “I want my document to refresh quickly”  Example: WebI via BICS (although the principles are the same for any given example)  Typical design challenge is that users demand many objects and fast refresh  Massive data sets obviously take longer to retrieve  But a high number of objects – even if not used in the report – will impact front-end performance  Limit query size wherever possible – reduce characteristics and key figures • Challenge users – Do they really need so many objects in the query?  If some objects are used infrequently, create a smaller (faster!) query for that purpose  Remove objects from the main query at the same time, thereby improving performance  Bringing back metadata about unused objects can have serious performance cost  The following blog is old, but key principles are still very relevant https://blogs.sap.com/2012/08/22/performance-optimization-for-webi-report-based-on-bw-bex-queries/
  • 10. 9 User Requirements and Perception of Performance (cont.) • Let’s assume performance means making quick or smooth navigation • This is a difficult balancing act – most likely will need compromise from user  Limitations may be database, network, BI4 server(s), client laptop, …  Assume that all possible query and report optimizations are already done  Use SAP HANA to speed up the data source?  Add additional resources to your BI4 server, e.g., add new processing tiers?  Cloud computing to improve performance on your BI4 deployment?  Outfit key users with new laptops?  Invest in network infrastructure?  Far cheaper – and arguably better – to reduce results set, or make smaller reports!  It’s not practical to have a daily report with hundreds of pages of charts and data  Split them into smaller, better-performing reports  Becomes a balance between increased maintenance overhead and end-user satisfaction
  • 11. 10 Aligning Expectations — Room for Compromise? • The preceding slides underline importance of requirements gathering and design phase  Engage user population from the outset, ensure requirements are correctly established  Choose the right tools for best fit  Not necessarily the same tool for each use case  Frequent reviews throughout the design phase will catch problems early  Understanding what users want in terms of performance can help avoid complaints • Try to balance performance against document size  Do all users really need a daily report with 100s of pages? • Try to balance improved functionality against bare bones performance  Do we want live data (e.g., aOLAP) or refreshable data (e.g., WebI)?  Do we want ad hoc analysis or feature-rich reporting, or something in between?  Highly formatted reports with rich features almost always come with overheads  Overhead may be performance, or effort required to create and maintain the report
  • 12. 11 Case Study — BEx Web Templates to SAP BusinessObjects BI4 • Brief: To decommission BEx web templates and transition to BI4 • A “best fit” approach was required since there was no direct mapping between web templates and BI4 • BI4.1 was already tried and tested in other areas within the organization  Requirement was to bring all business areas together into a BI4.1 shared service  A given business area had multiple subdivisions  Each subdivision has a number of standard use case reports  Each use case was individually assessed for transition to BI4.1  User requirements sought from business area focal points for each specific use case
  • 13. 12 Case Study — BEx Web Templates to SAP BusinessObjects BI4 (cont.) • Business area focal points outlined their requirements  “Like for like” was key requirement  Needed negotiation, as some functionality in web templates simply did not exist in BI4.1  E.g., bookmarking  Reasonable expectation that performance should be the same or better  New reports in BI4 should not be slower than equivalent web templates • Obvious best fit seemed to be SAP BusinessObjects Analysis, edition for OLAP • But there were also demands for new (previously unavailable) functionality  Enhanced slice and dice – manipulate report layout by dragging/dropping  Enhanced charting, plus improved look and feel of tabular data  Printer-friendly formatting – headers, footers, embedded images, etc. • aOLAP was trialed and rejected. Users saw, liked, and then wanted WebI.
  • 14. 13 Case Study — BEx Web Templates to SAP BusinessObjects BI4 (cont.) • We’re now trying to satisfy user demand for WebI to replace web templates!  Initial performance was considered very poor by comparison • Some WebI product problems were identified and addressed by the vendor  E.g., duplicate queries being fired at data source, related to query execution plan  This was readily identified through tracing methodologies discussed in this workshop • Some product enhancements were also implemented by vendor  Performance improvements related to query stripping  This was quantifiable through tracing methodologies discussed in this workshop • Front-end design errors resulted in poor performance, before being identified and fixed  E.g., use of “page number x of y” in footer alongside “fit to page” functionality  Every page needed to be calculated before the first page could be rendered  Source was identified through tracing and culprit was confirmed by vendor
  • 15. 14 Case Study — BEx Web Templates to SAP BusinessObjects BI4 (cont.) • Was comparison fair?  Enhanced functionality (as seen and subsequently demanded by users)  Much richer formatting compared to web templates  Vastly simplified, visually improved charting compared to previous technology  Easier to manipulate tabular data – no need to edit the underlying BEx query now  This is not free – most of this comes with an overhead!  WebI best fit/equivalent/“like for like” was a little slower, but still comparable • But now add new and resource-heavy functionality on top  Ability to actually build own reports?  Ability to merge data sources?  Functions to display page count/author/create date, “fit to page,” etc.  More overheads!
  • 16. 15 Case Study — BEx Web Templates to SAP BusinessObjects BI4 (cont.) • Summary:  Using tracing techniques in this workshop, flaws in comparisons were highlighted  In some comparisons the underlying query wasn’t even returning the same data!  This was addressed to level the playing field  Using tracing techniques in this workshop, product issues were identified  These were raised with SAP, and have subsequently been resolved  Using tracing techniques in this workshop, product improvements were quantified  Upgrades were proven to be effective, and could be demonstrated to the business
  • 17. 16 What We’ll Cover • What is performance? • Best practice when measuring performance – controlled and consistent testing • Tools to use to interpret the data, and accounting for time spent in each processing layer • Performance analysis for some example workflows • Wrap-up
  • 18. 17 Best Practice When Measuring Performance • Architectural workflows within SAP BusinessObjects Enterprise can be complex • When a performance concern is raised, it can be a challenge to identify the root cause  Front end – inefficient report design?  Are you using the best application for the job at hand?  SAP BusinessObjects and database – insufficient capacity, incorrect configuration?  Inefficient distribution of servers across cluster  Inadequate or inefficient heap assignment  Suboptimal configuration of services, SAP Notes and fixes not applied  Other factors  Room to improve your database query?  Network latency?  End-user laptop configuration causing a bottleneck?
  • 19. 18 Best Practice When Measuring Performance (cont.) • Front-end application (e.g., WebI) is frequently blamed since this is the only part users interact with … • Another frequently cited concern is lack of server resources • These concerns can be easily investigated, verified, and addressed or put to rest
  • 20. 19 Best Practice When Measuring Performance (cont.) • Start by analyzing a workflow in isolation  Where possible, take measurements in an environment where you can control the load  If production-like resources are not available, be prepared to extrapolate  If using tools to generate load, be sure to set realistic active concurrency • Take multiple measurements at different times during the day  Time may vary even in the same workflow – always take an average  Don’t forget to account for system/database/client cache • Do some locations suffer more than others?  Is number of users at that site a factor? Bandwidth issues?  Are jobs running overnight which affect different time zones?  How far is that location from your data? Network round trip/latency?
  • 21. 20 Best Practice When Measuring Performance (cont.) • Once you have consistent measurements, check all architectural and processing layers involved and determine time spent within each layer  How much time is spent in the database running the query?  How much time is spent bringing data back from the data source?  How much time is spent building each page and delivering it to the user? • This will help identify which areas you may need to revisit:  Content design: Are you trying to fit too much into one report or database query?  Environment sizing or configuration: Are additional resources required?  Background jobs, data loading: Can the schedule be adjusted to minimize impact?  Customization or call stack: Is it time to raise a Support case?
  • 22. 21 What We’ll Cover • What is performance? • Best practice when measuring performance – controlled and consistent testing • Tools to use to interpret the data, and accounting for time spent in each processing layer • Performance analysis for some example workflows • Wrap-up
  • 23. 22 Tools to Use to Interpret the Data, and Accounting for Time Spent in Each Processing Layer • The following are examples of tools that can be used to capture and review traces:  SAP Client Plug-in: a BI4 trace utility provided by SAP (SAP article 1861180)  Wireshark: freely available network analyzer  HttpWatch, Fiddler: freely available HTTP traffic and web analyzer  GLF Viewer: a log file viewer provided by SAP  This has been superseded by FlexiLogReader (SAP KB article 2203047)  Notepad++: a freely available editor that supports several programming languages  Nbtstat: diagnostic tool for NetBIOS over TCP/IP (part of the Windows OS) • You’ll see some of these in action in the demonstrations a bit later
  • 24. 23 Client Tool to Generate End-to-End Trace Files • Introduction to SAP end-to-end client plug-in • Making sure the plug-in works correctly  Some common issues explained • What the tool does, and how it can be very useful  Tags each web transaction with a unique ID  Output is written to trace files from each component in workflow  Advantages over server-side traces • Output from the trace tool  businesstransaction.xml  correlationID • Limitations  Currently requires Internet Explorer  Does not work with Excel (e.g., for Analysis, edition for MS Office)
  • 25. 24 Tools to Analyze Trace Files — General Usage Tips • Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files • Filter by correlationID from businesstransaction.xml  This removes background noise  You can now focus on activity from your workflow • Use indents and/or color to highlight each function call  Can now easily find start/end of function calls  Makes it easy to see how long each step takes • Add threadID column  Can now see and filter by individual threads • Scan transaction times, and look for “jumps”  This is when activity is happening outside the traces  E.g., when activity is happening in data source
  • 26. 25 What We’ll Cover • What is performance? • Best practice when measuring performance – controlled and consistent testing • Tools to use to interpret the data, and accounting for time spent in each processing layer • Performance analysis for some example workflows • Wrap-up
  • 27. 26 Performance Analysis for Some Example Workflows • Web Intelligence refresh via OLAP BICS to BW on SAP HANA • Web Intelligence refresh via JDBC to SAP HANA sidecar • SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA • AD or SAP logon into BI launchpad • OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA • SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
  • 28. 27 Web Intelligence Refresh via OLAP BICS to BW on SAP HANA • Web Intelligence (WebI) is an ad hoc reporting application that allows end users to define queries and design reports, or to modify existing reports depending on requirements • To optimize report performance or find potential bottlenecks:  Capture SAP BusinessObjects traces  Use SAP Client Plug-in (see SAP Note 1861180)  This tags each step with a unique correlationID  Measure front-end execution using, e.g., HttpWatch  Record BW execution time using ST12  Review BW stats with ST13 BIIPTOOLS
  • 29. 28 WebI Refresh via OLAP BICS to BW on SAP HANA • Workflow starts when user clicks button in browser  HttpWatch, Fiddler, etc., will accurately record start (and end) of execution • Take several measurements without traces to establish a baseline • With a consistent measurement, now perform same workflow but with traces enabled  Be aware of overhead introduced by the traces – overhead can be significant!  Consider overhead in your final assessment • Gather and filter the traces based on unique tag generated by the SAP Client Plug-in  This will enable you to follow the workflow through the traces  Several trace analysis tools are provided by SAP  E.g., FlexiLogReader (refer to SAP Knowledge Base Article 2203047)
  • 30. 29 WebI Refresh via OLAP BICS to BW on SAP HANA (cont.) • In this example workflow, several servers will be called  WebI Processing Server sees incoming call from HttpServletRequest  We can follow the function call stack which will invoke other servers as required  Calls to CMS (for security and core processing queries)  Calls to Security Token Server (STS) to resolve single sign-on to BW  DSLBridge (hosted in an APS) to fetch data from BW and to build transient universe • Traces show the architecture involved – investigate time spent in each processing layer • Add up time spent for all “HttpServletRequest” calls  Does this match time measured by, e.g., HttpWatch, Fiddler, etc.?  Small discrepancies to be expected  Time measured in front end (but not in traces) is outside of SAP BusinessObjects  E.g., time spent processing by client browser
  • 31. 30 WebI Refresh via OLAP BICS to BW on SAP HANA (cont.) • Use the following tools to capture information during the workflow:  SAP Client Plug-in (set trace level to high)  We can also activate traces via CMC, though in that case our transactions won’t be tagged  HttpWatch or Fiddler (or equivalent) can measure front-end execution time  This will also show the HTTP requests involved  Use ST12 transaction in BW for user ID executing the query  Only capture RFC calls (at this stage)
  • 32. 31 WebI Refresh via OLAP BICS to BW on SAP HANA (cont.) • After workflow has completed:  Save the HttpWatch output as a .hwl file  Stop recording with SAP Client Plug-in and collect relevant trace files  BI launchpad  WIPS  DSLBridge  CMS  STS (if applicable)  Stop ST12 and collect output, pick up statistics in ST13/BIIPTOOLS  ST12 and ST13/BIIPTOOLS output can be saved to Excel for offline analysis
  • 33. 32 WebI Refresh via OLAP BICS to BW on SAP HANA (cont.) • For comprehensive traces, use SAP Client Plug-in on “high” setting • But this creates a problem – activity will be logged on virtually all trace files (even those not relevant to our workflow)  “High” will pick up unimportant communication between internal components  This background noise is not important to us • To see which components are of interest in any workflow, first run the traces on “low”  Then gather ALL trace files with .glf file extension  Search all .glf files for correlationID tag from businesstransaction.xml  There is less “noise” – we only find hits in the files that are important to us • Now run traces again on “high” setting to record your workflow  Gather only trace files you have identified as important, and ignore the rest
  • 34. 33 WebI Refresh via OLAP BICS to BW on SAP HANA (cont.) • Various tools can be used to search multiple trace files for the correlationID tag  E.g., Notepad++, UltraEdit, etc.  Relevant* traces shown here:  WIPS  DSLBridge  CMS  STS *BI launchpad is also relevant though not shown here
  • 35. 34 Analysis of Trace Files • When bringing the results together, you’ll see time spent on operations like:  DPCommandsEx  answerPrompts  openDocumentMDP  getSessionInfosEx  getMap, getPages, getBlobInfo, etc. • Follow incoming/outgoing function calls from Tomcat layer to WIPS, and from WIPS to other services • For activity outside SAP BusinessObjects (e.g., in BW), details of time spent can be found using tools provided by that particular module/interface (e.g., ST12, ST13)  SAP BusinessObjects traces can only observe overall time spent outside the product  Traces contain no detail/granularity on transactions inside the data source
  • 36. 35 WebI Refresh via OLAP BICS — Analysis of Trace Files • Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files • Analyze time spent in different parts of the workflow  Identify time spent inside the product  See breakdown of time spent inside data source • Identify areas of concern that warrant further investigation • Summarize time spent performing individual functions  What are the most expensive functions?  Can we change something in the report to save us some time?  Demonstrate improvement in performance • This is taken from a real-life example
  • 37. 36 WebI Refresh via OLAP BICS — Analysis of Trace Files (cont.) • The illustration below brings together HttpWatch, traces, ST12, and ST13 data. Total execution was measured as 12.822s, and I accounted for 12.109s in the breakdown:
  • 38. 37 Analysis of Trace Files — Breakdown of Findings • Total execution time as seen by user was recorded using HttpWatch  This comprises:  BI4 Platform time  CMS authorization (STS was used, because of SSO to BW)  DSLBridge  WebI Processing Server (WIPS)  Data source time (BW on SAP HANA)  Query execution time  Calculation in database  Transfer time between database and BI4 platform  Measured time that is outside BI4 traces, e.g., time spent in client browser/laptop
  • 39. 38 Analysis of Trace Files — Breakdown of Findings (cont.) • Here is where most time was spent at each stage:  BI4 Platform time – captured in BI4 trace files  CMS time (and STS time, since we are using SSO to BW)  Security/authorization checks can be expensive  Can we simplify security (e.g., reduce group membership) to improve response times?  DSLBridge  Query execution plan (QXP) and transient/lean universe generation  More objects in the BEx query means more expensive QXP  Challenge the business users – do they really need/use ALL those objects??  Can you satisfy business requirements using several smaller, leaner queries/reports?  WebI processing  Microcube population, rendering report for display, calculation of variables, etc.  Check for expensive pagination functions, e.g., GetPages (for “page number x of y”)  Can any report-level calculations be pushed down to the database?
  • 40. 39 Analysis of Trace Files — Breakdown of Findings (cont.) • Here is where most time was spent at each stage: (cont.)  Data source time (in our case BW on SAP HANA)  Not captured in BI4 traces – this is found in ST12 and ST13 BIIPTOOLS output  Query execution time  Can you add more mandatory prompts to restrict the dataset?  OLAP calculations  Can any more calculations be pushed down to HANA?  OLAP processing: data is sorted and formatted according to query design  Receive data from OLAP processor and put into transfer structure in BICS interface  Data transfer from BW to BI Layer  DSL (WebI) BICS time: data transfer and preparation for WebI usage
  • 41. 40 Analysis of Trace Files — Breakdown of Findings (cont.) • Don’t forget to account for time measured but not recorded in BI4 traces  Execution time in HttpWatch always adds up to more than recorded in traces  A small discrepancy is to be expected  Includes initial/final communication between client and BI4 platform  Also includes any client-side processing time  E.g., work done by browser, Java, etc.  Anything more than a couple of seconds warrants further investigation
  • 42. 41 Analysis of Trace Files — Points to Consider • Is the poor performance an intermittent problem?  Back-end data loading can affect data manager time  Taking measurements throughout the day may help you pinpoint this  Refer to earlier section on best practice in testing methodology • Are clients making full use of all available caching mechanisms?  Check content design for functions which cause cache to be ignored!  Refer to http://scn.sap.com/docs/DOC-58532  See section “Do not (accidentally) disable the cache mechanism of Web Intelligence”
  • 43. 42 Analysis of Trace Files — Points to Consider (cont.) • Metadata transmission can be expensive  This may be influenced by content design  E.g., transient/lean universe generation – Can you reduce number of key fields and/or characteristics?  Too many prompt responses can result in high send time in the RFC record  This may also be influenced by BW configuration  Activate compression via basXML flag for the relevant BICS FMs affected (e.g., BISC_PROV_GET_INITIAL_STATE)  See SAP Note 1733726  Available since:  BW 7.30 SP09  BW 7.31 SP06  BW 7.40 SP11
  • 44. 43 Performance Analysis for Some Example Workflows • Web Intelligence refresh via OLAP BICS to BW on SAP HANA • Web Intelligence refresh via JDBC to SAP HANA sidecar • SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA • AD or SAP logon into BI launchpad • OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA • SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
  • 45. 44 Web Intelligence Refresh via JDBC to SAP HANA Sidecar • The methodology we previously described applies here too  However, data fetch for JDBC is now done by the WIPS itself (INPROC)  WIPS doesn’t outsource to a “third party” to communicate with the data source  In previous workflow, data fetch was handled by DSLBridge  Connection Server (CS) would be used for relational data sources  Communication with data source is handled by the CS JNI Engine inside the WIPS  To trace activity in the JNI call stack we must update the cs.cfg file  Sometimes this is referred to as Connection Server tracing
  • 46. 45 Web Intelligence Refresh via JDBC to SAP HANA Sidecar (cont.) • cs.cfg file resides at following location: <boeinstalldir>/dataAccess/connectionServer  Update the following to enable tracing: <JavaVM> <Options> <Option>-Dtracelog.configfile=<yourFolder>/BO_trace.ini</Option> <Option>-Dtracelog.logdir=<yourFolder></Option> <Option>-Dtracelog.name=CSJNIEngine</Option> </Options> • If SSO is used, then JDBC will either use XML-based SAML, or Kerberos AD • Time spent will show in the WIPS and STS output
  • 47. 46 Web Intelligence Refresh via JDBC to SAP HANA Sidecar (cont.) • The output will be captured in the CSJNIEngine_trace file • Output looks something like this: 13:46:01.479|+0000|Information| |==| | |CSJNIEngine|14160|1471|Thread-1459 |{|431|4|3|4|BIlaunchpad.WebApp|BOESERVER|webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.proces sDPCommandsEx|localhost:14160:13844.107885:1|CSJNI.JNIbeforeIncomingCall| BOESERVER START OUTGOING CALL execute: FROM [CSJNI.JNIbeforeIncomingCall# BOESERVER]- 13:46:01.503|+0000|Information| |==| | |CSJNIEngine|14160|1471|Thread-1459 |}|431|2|3|2|BIlaunchpad.WebApp| BOESERVER |webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx| BOESERVER |CSJNI.JNIbeforeIncomingCall| BOESERVER ||CS::JAVA::fetch: 00.025- 13:46:01.505|+0000|Error| |==|E| |CSJNIEngine|14160|1471|Thread-1459 |}|431|3|3|1|BIlaunchpad.WebApp| BOESERVER |webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx| BOESERVER |CSJNI.JNIbeforeIncomingCall| BOESERVER ||END INCOMING CALL SPENT [04.029] FROM [webiserver_ACC_PROC_2.WebIntelligenceProcessingServer.processDPCommandsEx#] TO [CSJNI.JNIbeforeIncomingCall# BOESERVER]
  • 48. 47 Performance Analysis for Some Example Workflows • Web Intelligence refresh via OLAP BICS to BW on SAP HANA • Web Intelligence refresh via JDBC to SAP HANA sidecar • SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA • AD or SAP logon into BI launchpad • OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA • SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
  • 49. 48 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA • Scenario: User executes Design Studio (DS) content via OpenDocument syntax from HANA XS portal  Review content design for complexity, and simplify where possible  Do separate components sit within one iframe?  Are any custom (SDK) components being used? • Key areas for this workflow:  Enterprise session generation (logon) initiated via OpenDocument call  JavaScript and other static content processing and cache validation on client side  Session generation for Analysis Application Service (AAS) on BI4 Platform  Processing of Design Studio content components including:  Validate security, retrieve report from File Repository  Establish JDBC connection to HANA, resolve trust to HANA if SSO being used  BICS script execution on HANA, data fetching
  • 50. 49 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) Source: SAP
  • 51. 50 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • Use HttpWatch, Fiddler, etc.  Measures overall execution time as experienced by user  Importantly, also records the static content downloaded on the client  Compare initial execution to subsequent executions  Static content should be cached and reused after initial load • Check for consistent behavior with different browsers  Is performance better/worse in IE vs. Chrome?  Is performance better/worse in different versions of same browser? • Enable of profiling parameter in the URL which opens your Design Studio content  Create OpenDoc link with your DS content, add “&profiling=X” to end of OpenDoc URL  This generates DS statistics on client rendering and Java server time
  • 52. 51 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • In addition, use the SAP Client Plug-in (low setting) to generate trace output – alternatively, enable Tomcat and Analysis Application Server traces  Take several measurements to ensure consistent readings and establish baseline/average  Compare response times for:  Initial load without client cache:  New Enterprise session generation for logon to BOE platform (AD SSO into application layer)  All static content (JavaScript/CSS) must be loaded by the client  New CMS queries for security validation  Initial load with client cache:  New Enterprise session generation for BOE platform (AD SSO into application layer)  All static content should now be read from local cache  New CMS queries for security validation  Subsequent reload with client cache:  Enterprise session already exists and all static content should now be read from cache
  • 53. 52 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • Find the start and end for your execution in the Tomcat web app output  12:00:18.950|+0100|Information| |==| | |BIlaunchpad| 4540|1552|http-apr-8443-exec-13| |1|0|1|0|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |BIPSDK.EnterpriseSession:getService| BOESERVER |com.crystaldecisions.sdk.framework.internal.EnterpriseSession||getService(): service=InfoStore, server=-  12:00:49.954|+0100|Information| |==| | |BIlaunchpad| 4540| 63|http-apr-8443-exec- 5|}|24|1|0|1|BIlaunchpad.WebApp| BOESERVER |-|-|BIlaunchpad.WebApp| BOESERVER |HttpServletRequest: 00.046 • This time should match the HttpWatch total time  Difference between start of first request and end of final request should match time recorded in HttpWatch  Very easy to find this in traces if using SAP Client Plug-in, as transactions are tagged  Remember – a small discrepancy to be expected
  • 54. 53 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • Now bring results together to consider end-to-end workflow  AAS from BI4 Platform  Tomcat web app trace from SAP HANA XS  BICS profiling output (Java statistics)  HttpWatch capture • If using the SAP Client Plug-in, use the correlationID (in businesstransaction.xml) to filter out background noise and see only relevant activity inside BI4 Platform traces • When you’re looking for potential bottleneck, start by zooming into the most time- consuming calls
  • 55. 54 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • “Int.do” in HttpWatch trigger BICS script execution/data fetch on SAP HANA  15.12s recorded in HttpWatch + 23.094 15.120 3892 6442 POST 200 html https:// BOESERVER /BOE/portal/1502261134/zenwebclient/int.do • This triggers main executeBIRequest function – which can be seen in AAS traces  14.83s recorded in trace files (remember: small discrepancy always expected) 12:00:28.121|+0100|Debug| |<<| | | BOESERVER.AnalysisApplicationServer|13296|157637|Transport:Shared-1439/56| |23|1|1|1|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER|.executeBIRequest| BOESERVER|||||interface com.sap.ip.bi.base.application.IApplication|BI-RA-AD|[BICS HANA]Fetch members for characteristic EVENT_DESCRIPTION- 12:00:42.954|+0100|Debug| |<<| | | BOESERVER|13296|157637|Transport:Shared-1439/56| |23|1|1|1|BIlaunchpad.WebApp| BOESERVER|BIlaunchpad.WebApp| BOESERVER |.executeBIRequest| BOESERVER|0|||||interface com.sap.ip.bi.base.application.IApplication|BI-RA-AD|[BICS HANA](14833ms) Get the crosstab data (GET_CROSSTAB_DATA)-
  • 56. 55 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • Most transactions occur within the executeBIRequest call. Here is the start of the main executeBIRequest: 12:00:21.847|+0100|Information| |==| | |aps_ACC_PROC_2.AnalysisApplicationService| 3744|184296|Transport:Shared- 1170/56|{|383|1|1|2|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |.START OUTGOING CALL Outgoing: FROM [.executeBIRequest# BOESERVER • Here is a call which is triggered by executeBIRequest, and has been “outsourced” by the AAS to the Security Token Server (STS) – this call resolves SSO (SAML, in this example): 12:00:21.972|+0100|Information| |==| | |aps_ACC_PROC_2.AnalysisApplicationService| 3744|184296|Transport:Shared- 1170/56|}|411|0|1|2|BIlaunchpad.WebApp| BOESERVER |BIlaunchpad.WebApp| BOESERVER |.executeBIRequest| BOESERVER END OUTGOING CALL Outgoing: SPENT [00.255] FROM [.executeBIRequest# BOESERVER] TO [.getSAMLSSOResponseByHostAndPort# BOESERVER ]- • There are many smaller operations (e.g., creation of controller session, fetching of BIAPP through CORBA layer, creation of components), all accounting for tiny amounts of time  Only look for expensive calls when looking for bottlenecks  Adding up expensive calls will account for vast majority of measured execution time  The sum of all the smaller calls makes up the majority of the “missing” time
  • 57. 56 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • HttpWatch recorded total execution time of 30.97s  This comprises  Enterprise session generation (logon) via BI launchpad web app: 4.2s  Client-side JavaScript loading, cache validation, load supporting files: 6.8s  Session generation for AAS (including security calls/InfoStore and CMS time): ~1s  Processing of Design Studio report components: 18.6s  Processing DS report components can be broken down as follows:  Validate security: 0.5 sec  Set Template: 1.5 sec  Retrieve report from File Repository: 0.3 sec  Establish JDBC connection to HANA: 0.25 sec  Resolve trust to HANA for SSO: 0.25 sec  Process command before rendering: 1 sec  BICS script execution on HANA and data fetching: 14.8 sec
  • 58. 57 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • Compression can have a significant impact on initial load time  Be aware of existing product defect ADAPT01704289  Refer to SAP Note 1906557 – Tomcat crash due to EXCEPTION_ACCESS_VIOLATION in the zip.dll with Java_java_util_zip_ZipEntry_initFields *  SAP has identified root cause as a bug in JVM/Tomcat  To overcome this issue, use latest SAP JVM 6.1 Patch Collection 65 (build 6.1.070)  Confirm that this SAP JVM is compatible with your version of BI4 • Parallel processing for Design Studio  To prevent deadlocks, Design Studio uses a Java-based version of BICS  Prior to version 1.5, DS could only process sequentially  Parallel processing available since version 1.5  Apply SP2 to resolve parallel processing bug when using SDK components * Requires login credentials to the SAP Service Marketplace
  • 59. 58 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • Be aware of:  Cache validation has a significant impact on initial load time  Cache-Control is configured to 10 years and used in combination with a “Last- modified” property  After AAS restart, last modified time gets updated  In a clustered BI4 environment (i.e., multiple AAS on different nodes), last modified property won’t be exactly the same across all nodes, due to different AAS restart timestamps  This results in client browser cache being ignored!  Every time the content is opened it is treated as an initial load – incurs major penalty!  SAP improved Design Studio at 1.3 SP2 to improve the way it handles static content
  • 60. 59 SAP BusinessObjects Design Studio Refresh via JDBC BICS to SAP HANA (cont.) • Be aware of: (cont.)  If using custom SDK components, initial response time may seem excessive  Gathering resources (static content) from SDK components takes longer than normal  This is because SDK components are stored in the BI4 as repository objects (BLOBS)  Resultant processing in the web tier represents an additional overhead  Resources only need to be fetched once – and then can be cached  They are subsequently read from cache, improving response times for users
  • 61. 60 SAP BusinessObjects Design Studio — Analysis of Trace Files • Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files  Take a look at profiling statistics  Illustrate limitations of profiling statistics • Analyze time spent in different parts of the workflow  Identify time spent inside the product  See breakdown of time spent inside data source • Identify areas of concern that warrant further investigation • Summarize time spent performing individual functions  What are the most expensive functions?  Can we change something in the design to improve performance?  Are there factors outside the dashboard that we can investigate? • This is taken from a real-life example
  • 62. 61 Performance Analysis for Some Example Workflows • Web Intelligence refresh via OLAP BICS to BW on SAP HANA • Web Intelligence refresh via JDBC to SAP HANA sidecar • SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA • AD or SAP logon into BI launchpad • OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA • SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
  • 63. 62 AD or SAP Logon into BI Launchpad • Each authentication type has its own plug-in  There are client-side SDK plug-ins and server-side (CMS) plug-ins  Client tools may also use web services, etc. • User logon is initiated by client-side plug-in  Handshake occurs between the client-side and the CMS plug-ins  On successful handshake, the CMS permits logon • Plug-ins may need to perform different functions, depending on authentication type  Regardless of authentication type, CMS security sub-system performs the following:  Ensures user count does not exceed the maximum allowed for current license key  Creates a session InfoObject and increments the license count  Creates the logon token InfoObject (a unique string instead of username/password)  Optionally creates the user InfoObject if it does not already exist  This depends on settings in Authentication tab in CMC
  • 64. 63 AD or SAP Logon into BI Launchpad (cont.) • Enterprise authentication logon requires the secEnterprise client-side plug-in  Plug-in encrypts the username and password  Plug-in stores this in a security buffer, and hands the security buffer to CMS  CMS security sub-system calls the object sub-system to verify user InfoObject exists and password matches  If these criteria are satisfied and security permits, then user is allowed to log on • AD authentication logon requires the secWinAD client-side plug-in  Queries the Domain Controller (DC) to authenticate the user  On successful authentication, a token from DC gets passed to the server-side secWinAD plug-in on CMS  Server-side plug-in verifies group membership by searching through group graph  Group graph includes information about User Groups and how they relate to each other
  • 65. 64 AD or SAP Logon into BI Launchpad (cont.) • Use case scenario: users report very slow into BI Platform  With use of a viewer like HttpWatch, monitor HTTP(S) traffic on the client  For each call you can see execution time in seconds, which protocol used, bytes received, and if static content is read from the cache  In the example above, a particular call stands out: Vintela request  https://BOEserver:8443/BOE/portal/1502261134/BIPCoreWeb/VintelaServlet?vint_bac kURL=%2FInfoView%2Flogon.faces&vint_cms=%40bi4-CMS
  • 66. 65 AD or SAP Logon into BI Launchpad (cont.) • Use SAP Client Plug-in to trace the workflow  We see one call taking nearly 10s to get a response  Make use of network analysis tool (e.g., Wireshark) to inspect traffic during that call  In this real-life example, a network utility (Nbtstat) revealed a NetBIOS packet querying for a computer name  Problem was caused by poor server-side WINS configuration, and initial NetBIOS request timing out for each of the 3 NICs before eventually coming back
  • 67. 66 AD or SAP Logon into BI Launchpad (cont.) • WINS determines the IP address associated with a particular network computer  After disabling WINS on all NICs, Nbtstat failed immediately – did not expire/time out  With no NetBIOS queries left pending, SSO logon was no longer held up • WINS – NetBIOS over TCP/IP – LMHOSTS are mainly for legacy NetBIOS-based apps • SAP BusinessObjects does not require NetBIOS for authentication, and name resolution should always use DNS
  • 68. 67 AD or SAP Logon into BI Launchpad — Analysis of Trace Files • Use a range of tools to review relevant trace files and other information • Analyze time spent in different parts of the workflow • Identify areas of concern that warrant further investigation • Summarize time spent performing individual activities  What are the most expensive actions?  Can we change something in the design to improve performance?  Are there factors outside BI4 that we can investigate? • This is taken from a real-life example
  • 69. 68 Performance Analysis for Some Example Workflows • Web Intelligence refresh via OLAP BICS to BW on SAP HANA • Web Intelligence refresh via JDBC to SAP HANA sidecar • SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA • AD or SAP logon into BI launchpad • OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA • SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
  • 70. 69 OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA • In this section, we investigate performance of Analysis, edition for OLAP (aOLAP) • aOLAP is designed for query and analysis rather than reporting  Works against multi-dimensional data sources  Limited formatting capability – normally used for generating tabular “workspaces” • The multi-dimensional analysis server (MDAS) handles aOLAP workspaces  MDAS is hosted by an Adaptive Processing Server (APS) • For a typical aOLAP refresh via BICS to BW on SAP HANA, we see interaction between various layers and servers using same methodology as previously discussed  For process operations outside the BI4 platform, use BW statistics, ST12, etc.  BW statistics and ST12 provide extra detail that can’t be recorded in the BI4 traces
  • 71. 70 OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA (cont.) • Total execution time (e.g., from HttpWatch) will comprise:  CMS time (and STS time, if using SSO to BW)  MDAS function calls for query execution (BICS calls)  Database processing:  HANA DB retrieval times (depending on how much data the query asks for)  OLAP Calculations (most calculations will be processed in OLAP)  Check possibility to push down to HANA  OLAP processing time  BICS interface (BI/BW)  Data transfer from BW to BI Layer  Display in BI launchpad and client rendering time
  • 72. 71 OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA (cont.) • BW back-end statistics for aOLAP workflows can be generated by enabling BICS profiling  This is controlled via a properties file on the BOE server running the MDAS service: <BOE install dir>javapjsservicesMDASresourcescombusinessobjectsmultidimensionalservicesmdas.properties • If multidimensional.services.bics.profiling.enabled is set to true:  OLAP statistics in table RSDDSTAT_OLAP are generated  Data Manager statistics in table RSDDSTAT_DM are generated • This means a RSBOLAP_BICS_STATISTIC_INFO function for almost every activity  This can have a significant impact on aOLAP performance as experienced by end users!  E.g., time taken to display a prompt to the user: we measured 11.5s with and 5s without profiling  E.g., time taken to execute a data fetch: we measured 45s with and 32s without profiling
  • 73. 72 OLAP Refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA (cont.) • When a BEx query is connected to multiple sheets in an aOLAP workspace, check that aOLAP is only loading the active tab • MDAS may perform the loadQuery for ALL tabs, having huge impact on response times • Below is an example of a workspace containing 12 sheets:  There is only one getRepresentation call  But the MDAS issues a loadQuery for all 11 (inactive) sheets too!  SAP Development Group provided code optimization via ADAPT01730767 to address the overhead in the call stack when using multi-tabs
  • 74. 73 Performance Impact of “Lazy Loading” #1 • aOLAP can be configured to always load queries when workspace is opened, or only load queries when explicitly requested by user interaction  Only loading when asked is referred to by SAP as “lazy loading” • To enable lazy loading, make a configuration change in the mdaclient.properties file on the server running Tomcat:  #Configure whether queries are lazy loaded when first accessed to retrieve data or preloaded when the workspace is opened.#query.lazyload=false
  • 75. 74 Performance Impact of “Lazy Loading” #2 • There is another configuration setting on the MDAS stack that SAP refers to as “lazy loading”  Lazy loading also means to prevent pre-load of metadata from BW with MDAS  Controls whether metadata hierarchies and attributes are pre-loaded all at once or are lazy loaded when their dimension is expanded by the user  To enable pre-load of metadata, make a configuration change in mdas.properties  multidimensional.services.preload.metadata=true • Both lazy loading options should be assessed for potential performance gains
  • 76. 75 Other Performance Considerations • If you take an aOLAP workspace from BI4.0 and open it in BI4.1, an in-situ upgrade of the internal workspace takes place to allow for new capabilities delivered with BI4.1  Upgrade causes several seconds delay when first opening the workspace in BI4.1  Happens each time the workspace is opened in BI4.1 until upgraded version is saved  After an upgrade, ask users to open and then save the workspace  The in-situ upgrade will not happen again
  • 77. 76 Other Performance Considerations (cont.) • Maximum Member Selector Size and Member Selector Cache Limit tuning • Maximum Member Selector Size  Maximum Member Selector Size is set to 100,000 by default and acts as a safety belt limit  Regardless of how many members exist, we never fetch more than this number of members  E.g., if this is set to 500, then in the first SQL statement you will find out if there are more than 500 entries • Member Selector Cache Limit  If Maximum Member Selector Size is less than or equal to Member Selector Cache Limit then members will be cached in MDAS for faster access on future queries  This is only applicable in flattened hierarchies
  • 78. 77 OLAP Refresh via OLAP BICS — Analysis of Traces • Use SAP tools (e.g., GLF Viewer, FlexiLogReader) to review trace files • Highlight our concern in trace files to build a case for SAP Support  Clearly demonstrate our problem  Explain why it is a problem • This is outside of our control  What happens now? • What was the final outcome? • This is taken from a real-life example
  • 79. 78 Performance Analysis for Some Example Workflows • Web Intelligence refresh via OLAP BICS to BW on SAP HANA • Web Intelligence refresh via JDBC to SAP HANA sidecar • SAP BusinessObjects Design Studio refresh via JDBC BICS to SAP HANA • AD or SAP logon into BI launchpad • OLAP refresh via OLAP BICS in SAP BusinessObjects BI 4.1 to BW on SAP HANA • SAP BusinessObjects Analysis, edition for Microsoft Office refresh against BW
  • 80. 79 SAP BusinessObjects Analysis, edition for Microsoft Office Refresh Against BW • While users may view the software favorably, the product has its own challenges  Software is not necessarily managed centrally (unless rolled out via Group Policy, etc.)  SAP BI administrators are not normally the same team as those pushing out software via GPO  Hence, rolling out software tends to need coordination between SAP BI Admins and, e.g., AD team  This can complicate the upgrade process for large deployments … but can also introduce difficulties for performance troubleshooting • Software is a full client, running almost entirely outside the control of BI Admins  Dependent on hardware spec, also affected by what’s currently running on the PC  Contention for resources on client side will impact performance  What else is currently using memory and CPU resource? Are a lot of applications already running?  Typically BI Admins have no control – or visibility – on what is running on client PC  Client location/network is also a major contributing factor to performance  Data must be returned to a client PC rather than be served from a central, dedicated environment
  • 81. 80 SAP BusinessObjects Analysis, edition for Microsoft Office Refresh Against BW (cont.) • Performance considerations  Compression: set basXML flag on all relevant function modules on BW side  SE37  Input the function module  check on Attributes tab  basXML  If possible, consider limiting cells returned  Refer to https://launchpad.support.sap.com/#/notes/2083067 *  Back-end query optimization – limit/reduce number of objects in query  Metadata transmission can get very expensive!  Where possible, create dedicated (smaller) queries for each use case  Becomes a trade-off between maintenance overhead and performance  Content runs more slowly after upgrade from 1.x to 2.x version?  Open, refresh, save content using upgraded software  Content undergoes in-situ upgrade, to leverage new software features * Requires login credentials to the SAP Service Marketplace
  • 82. 81 SAP BusinessObjects Analysis, edition for Microsoft Office — Analysis of Traces • Use standard tools to review trace files • Identify areas of concern that warrant further investigation  Investigate time spent outside product  Drill into time spent inside data source • What are the most expensive activities? • Can we change something in the design to improve performance? • Where can we go next to improve performance? • This is taken from a real-life example
  • 83. 82 What We’ll Cover • What is performance? • Best practice when measuring performance – controlled and consistent testing • Tools to use to interpret the data, and accounting for time spent in each processing layer • Performance analysis for some example workflows • Wrap-up
  • 84. 83 Where to Find More Information • Toby Johnston, “BI Platform E2E tracing with Solution Manager E2E Trace Analysis” (SCN, September 2013).  http://wiki.scn.sap.com/wiki/display/BOBJ/BI+Platform+E2E+tracing+with+Solution+Manager+E2E+Trace+Analysis • Matthew Shaw, “Standard BI Platform log tracing” (SCN, January 2016).  http://wiki.scn.sap.com/wiki/display/BOBJ/Standard+BI+Platform+log+tracing • SAP, “2103024 – *** MASTER NOTE *** How To Trace Business Objects 4.0 and 4.1 (Servers and Clients)” (SAP, December 2015).  http://service.sap.com/sap/support/notes/2103024 * • Toby Johnston, “Wily Introscope for BI Platform 4.0: Why it is important and how to get started” (SCN, August 2012).  http://scn.sap.com/community/bi-platform/remote-supportability/blog/2012/08/06/an-administrators-match-made-in- heaven-extend-your-bi-platform-40-monitoring-capabilities-with-wily-introscope • “Tutorials – SAP Business Intelligence Platform 4.x” (SCN, April 2017).  http://scn.sap.com/docs/DOC-8292  Process flows for SAP BusinessObjects 4.x • Appendix 1: Anatomy of the Web Intelligence Processing Server * Requires login credentials to the SAP Service Marketplace
  • 85. 84 Where to Find More Information (cont.) • Kurt Holst, “How to Performance Optimize SAP BusinessObjects Reports Based Upon SAP BW using BICS Connectivity” (SCN, September 2013).  https://archive.sap.com/documents/docs/DOC-33706 • Jonathan Brown, “Tips for Optimizing the Performance of Web Intelligence Documents” (SCN, September 2016).  https://wiki.scn.sap.com/wiki/display/BOBJ/Tips+for+Optimizing+the+Performance+of+Web+Int elligence+Documents • Deepak Kumar Shah, “Analysis for Office 2.x – Data Cells Limit and Memory Consumption” (SCN, May 2017).  https://wiki.scn.sap.com/wiki/display/BI/Analysis+for+Office+2.x+-+Data+Cells+Limit+ and+Memory+Consumption
  • 86. 85 7 Key Points to Take Home • Simplify and isolate your workflow, and get a consistent baseline measurement • Examine which processing layers are involved, and understand how the various layers interact with each other • Use the best tools to gather traces for the problem workflow and simplify your analysis • Break down the total runtime into different processing layers to see where the holdup is • Don’t forget that delays can occur outside the traces, e.g., in end-user laptop! • Verify if active concurrency, data volumes, or core processing play a factor in performance degradation • If appropriate, then embark on a tuning exercise based on your findings  Challenge user requirements – outline/demonstrate benefit of a smaller BEx query!  Review server resources, consider distribution and/or configuration changes  If necessary, raise a Support case to highlight inefficient/incorrect product behavior
  • 87. 86 How to contact me: Dan Goodinson dan.goodinson@bibrainz.com Please remember to complete your session evaluation Your Turn!
  • 88. 87 SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies. Wellesley Information Services is neither owned nor controlled by SAP SE. Disclaimer
  • 89. Wellesley Information Services, 20 Carematrix Drive, Dedham, MA 02026 Copyright © 2017 Wellesley Information Services. All rights reserved.