Designing High Performance BIRT Reports Mica J. Block Director Actuate Corporate Engineers Actuate Corporation.

Slides:



Advertisements
Similar presentations
Instant JChem - current status and what's coming soon. Tim Dudgeon Solutions for Cheminformatics.
Advertisements

XIr2 Recommended Performance Tuning Andy Erthal BI Practice Manager.
Chapter 9. Performance Management Enterprise wide endeavor Research and ascertain all performance problems – not just DBMS Five factors influence DB performance.
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
© Copyright 2012 STI INNSBRUCK Apache Lucene Ioan Toma based on slides from Aaron Bannert
1 Actuate Corporation © 2010 THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE BIRT COMPANY THE.
FAST Radar System Engineering Overview. FAST Radar Overview –What’s Required? IIS 6.0  With Microsoft.NET Framework 1.1 and SMTP for MS SQL Server.
Copyright © 200\8 Quest Software High Performance PL/SQL Guy Harrison Chief Architect, Database Solutions.
Key Considerations for Report Generation & Customization Richard Wzorek Director, Production IT Confidential © Almac Group 2012.
Technical BI Project Lifecycle
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Information Retrieval in Practice
Components and Architecture CS 543 – Data Warehousing.
Multiple Tiers in Action
Web-Enabling the Warehouse Chapter 16. Benefits of Web-Enabling a Data Warehouse Better-informed decision making Lower costs of deployment and management.
Overview of Search Engines
Microsoft Office SharePoint Server Business Intelligence Tom Rizzo Director, Microsoft Office SharePoint Server
Understanding and Managing WebSphere V5
BUSINESS INTELLIGENCE/DATA INTEGRATION/ETL/INTEGRATION AN INTRODUCTION Presented by: Gautam Sinha.
WorkPlace Pro Utilities.
Database Design for DNN Developers Sebastian Leupold.
Databases C HAPTER Chapter 10: Databases2 Databases and Structured Fields  A database is a collection of information –Typically stored as computer.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 10 Database Performance Tuning and Query Optimization.
1 Copyright © 2004, Oracle. All rights reserved. Introduction to Oracle Forms Developer and Oracle Forms Services.
SDPL 2001Notes 7: XML Web Sites1 7 XML Web-Site Architectures n How (and why) to apply XML techniques in the implementation of Web sites? 7.1 XML, Databases,
Sofia, Bulgaria | 9-10 October SQL Server 2005 High Availability for developers Vladimir Tchalkov Crossroad Ltd. Vladimir Tchalkov Crossroad Ltd.
10 Adding Interactivity to a Web Site Section 10.1 Define scripting Summarize interactivity design guidelines Identify scripting languages Compare common.
Presenting Statistical Data Using XML Office for National Statistics, United Kingdom Rob Hawkins, Application Development.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
Copyrighted material John Tullis 10/6/2015 page 1 Performance: WebSphere Commerce John Tullis DePaul Instructor
Physical Database Design & Performance. Optimizing for Query Performance For DBs with high retrieval traffic as compared to maintenance traffic, optimizing.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Custom Reporting in Blackboard Learn. What happens between clicking run and getting the report? Connect to a data source Where is the information?
McGraw-Hill Technology Education © 2004 by the McGraw-Hill Companies, Inc. All rights reserved. Office Access 2003 Lab 3 Analyzing Data and Creating Reports.
JBoss Developer Studio BIRT Plugin. BIRT - Business Intelligence and Reporting Tools. BIRT plugin for JBoss Developer Studio is an Eclipse-based open.
SURENDER SARA 10GAS Building Corporate KPI’s
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Searching Business Data with MOSS 2007 Enterprise Search Presenter: Corey Roth Enterprise Consultant Stonebridge Blog:
© 2006 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Jason Weathersby BIRT Evangelist, Actuate Corp. Leveraging.
ASP.NET Caching - Pradeepa Chandramohan. What is Caching? Storing data in memory for quick access. In Web Application environment, data that is cached.
Introduction to Enterprise Guide Jennifer Schmidt Rhonda Ellis Cassandra Hall.
1 Actuate Corporation © 2007 Actuate 9 Technical Overview and Product Update Paul Clenahan VP, Product Management Actuate.
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
Building Dashboards SharePoint and Business Intelligence.
Session id: Darrell Hilliard Senior Delivery Manager Oracle University Oracle Corporation.
1 Copyright © 2009, Oracle. All rights reserved. Oracle Business Intelligence Enterprise Edition: Overview.
for all Hyperion video tutorial/Training/Certification/Material Essbase Optimization Techniques by Amit.
21 Copyright © 2009, Oracle. All rights reserved. Working with Oracle Business Intelligence Answers.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Aggregator Stage : Definition : Aggregator classifies data rows from a single input link into groups and calculates totals or other aggregate functions.
If you have a transaction processing system, John Meisenbacher
CIS-NG CASREP Information System Next Generation Shawn Baugh Amy Ramirez Amy Lee Alex Sanin Sam Avanessians.
Diving into Query Execution Plans ED POLLACK AUTOTASK CORPORATION DATABASE OPTIMIZATION ENGINEER.
Apache Cocoon – XML Publishing Framework 데이터베이스 연구실 박사 1 학기 이 세영.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Improve query performance with the new SQL Server 2016 query store!! Michelle Gutzait Principal Consultant at
Introduction to Oracle Forms Developer and Oracle Forms Services
Designing High Performance BIRT Reports
Introduction to Oracle Forms Developer and Oracle Forms Services
Advanced QlikView Performance Tuning Techniques
What’s New in SQL Server 2016 Master Data Services
Introduction to Oracle Forms Developer and Oracle Forms Services
Section 10.1 YOU WILL LEARN TO… Define scripting
Database Performance Tuning and Query Optimization
Searching Business Data with MOSS 2007 Enterprise Search
Chapter 11 Database Performance Tuning and Query Optimization
Tutorial 7 – Integrating Access With the Web and With Other Programs
Building a Threat-Analytics Multi-Region Data Lake on AWS
敦群數位科技有限公司(vanGene Digital Inc.) 游家德(Jade Yu.)
Presentation transcript:

Designing High Performance BIRT Reports Mica J. Block Director Actuate Corporate Engineers Actuate Corporation

Topics Understanding generation performance External factors Overhead Estimated Component Times Performance tips Generation Rendering NOTE: This presentation deals with the performance of the reports themselves regardless of the server technology being used.

Understanding Performance

“Pages-per-Second” Myth Assumes all reports are equal Ignores Number of report items per page Complexity of the query Pages are defined at render time Impact of aggregates, and more… Reality: report items-per-second is better metric Pages-per-second applies only to same report on different runs

External Factors System: CPU, load Raw CPU power RAM Overall load in server environment JVM User expectations DB performance Database design Query design & optimization Performance of vendor’s query features Network overhead

Actuate Architecture Development Tier:IT builds reports, blueprints, metadata, & templates for different reporting styles Storage & Data Tier:Dedicated, secure storage locations for accessing data, storing project & report content Production Tier:Single, scalable cluster for generating content for different reporting styles Presentation Tier:Dedicated tier for accessing & presenting report & dashboard content to users Client Tier:Users consume content according to their analytic objective Client Tier (Web Browsers) IEFirefox Storage, Data Access & Integration Tier Development Tier PerfMgmt i EII EM V F1F1F1F1 F2F2F2F2 i EII EM V F1F1F1F1 F2F2 i EII EM V F1F1F1F1 F2F2 i EM V F1F1F1F1 F2F2F2F2 iServer Content Production Tier Presentation (Web/Portal) Tier Mgmt Console iPortal iPortal iPortal

Estimated Component Times Estimated from simple listing using single table (10,000 rows) in SQL Server Generation only does not include rendering Not scientific methodology (done on a laptop) Your mileage will vary Use your own data Try in your own environment Focus on specific reports with problems

Estimated Component Times Pages: little to no effect Changed page break from 200 to > double pages Adds < 2% to report run Formatting: little to no effect Added numeric and date formatting Was slightly faster Groups: moderate to significant Add two group levels to simple listing Adds ~5-20% to report run per group Depends on the number of group breaks Depends on how the data is sorted

Estimated Component Times One-pass aggregates: moderate Added two aggregates Adds ~4% per aggregate to report run Depends on number of groups Look-ahead aggregates: significant Total for group as percent of overall total Adds ~2-8% per aggregate to report run Depends on number of groups and number of data items Charts: Very significant One chart added ~33% to report run One chart per group ~30-150% to report run Depends on number of groups (i.e. charts).

Estimated Component Times Report NameSize Average (in miliseconds)DifferenceCompare Report Single Table4.30 MB1, Single Table Formatted4.30 MB1, %Single Table Single Table Double Pages4.35 MB1, %Single Table Group By City (4 instances)4.51 MB2, %Single Table Double Pages Group By Customer (400 instances)4.69 MB2, %Single Table Double Pages Group By Customer Sorted4.69 MB2, %Single Table Double Pages Group By City Aggregates (2 per group)4.71 MB2, %Group By City Group By Customer Aggregates (2 per group)4.89 MB2, %Group By Customer Group By City Two Pass4.81 MB2, %Group By City Group By Customer Two Pass5.00 MB2, %Group By Customer Single Chart5.92 MB2, %Single Table Group By City Chart6.25 MB2, %Group By City Group By Customer Chart21.6 MB5, %Group By Customer

Implications Report generation depends on: number of report items Presence of aggregates Number of groups Sorting of data Presence of charts Time per page depends on output format Pages per second depends on layout Decreasing page break number “doubles” performance!

Performance Strategies Use report items-per-second as a guide Relatively fixed for a platform Determine a time budget How many report items can the report afford? Performance strategies Remove application-specific bottlenecks Make report items work harder Reduce impact of aggregates

How to Analyze Performance Test functionality separately Write to a log file timers in key areas Collect run times Remove all content from report Collect run times again Difference is cost of processing report items Remainder is per-row cost Example:

Performance Tips

General Observations Report optimization is a trial and error effort Some of the report optimization techniques require additional development time Not necessary to use these techniques when the reports perform within the user requirements These techniques should only be used to optimize reports

Use Latest Version Use latest version of BIRT Has many performance improvements Do not use ‘Total’ functions These functions are deprecated in BIRT Has some performance issues Especially with filters

Optimize Database Access Extra time from queries, DB overhead, computation, etc. Minimize query time Make sure query is optimized Reduce the number of columns and rows returned Reduce number of queries needed Use stored procedures Use materialized views

Optimize XML Access XML is versatile, and powerful to describe meta data and actual data in one file BIRT has a “generic” XML ODA which uses an extremely efficient XPath algorithm to parse the results “generic” is great to solve a multitude of needs, but lacks to solve a single need very well If the XML Schema will not change, and high user loads are required, specialize connectors should be built to improve overall system performance

Optimize XML Access Java API for XML Binding (JAXB) is a specialized API for Java used to efficiently and quickly parse a fixed schema XML data file Upside – may be 10x faster than the “generic” XML ODA Downside – if the XML Schema changes, JAXB classes will need to be re-compiled Downside – no UI exists to create data sets, JAXB classes must be used with a scripted data source The same also applies for the Web Services ODA

Filtering BIRT enables filtering at different layers such as in the table Push filtering to the database (if possible) Reduces the size of the result set Extremely important with two pass aggregates

Sorting When you add a group section BIRT will automatically sort the dataset in memory. There is no setting to tell BIRT that the data is already sorted. Always better to push the sort to the database

Getting caught in a (Data) Bind As of BIRT – this will change for a future release with data set caching Each report item with a specified data binding will force that data set to re-execute for each binding Bindings will cascade down to contained report items (data bindings on a table cascade down to items inside the table) In nearly all reports data sets should only have 1 binding specified Only extremely complex reports with inter-woven data set requirements will require multiple bindings per data set Joint Data Sets can be used in some cases to avoid multiple bindings on a single data set Do not bind data sets on the Master Page

Aggregates Aggregates: Sum( ), Count( ), Min( ), etc. Two types Running – done while creating the table Look-ahead - requires two passes over data For performance, review look-ahead type Create a stored procedure to do calculation Use a separate query Use a data filter to merge totals into each row Compare to out-of-box solution

Charts Good news - Most time spent in rendering (using drawing primitives in swing) Actual code is optimized Size and resolution will impact performance All points are loaded in memory. Avoid charts with many points Little more you can discern in a chart with 10,000 points than in a chart with 500 points More points will also take longer to render as there is more to draw Make sure you use the table binding not the dataset binding

Charts 3D charts might take more time as it uses a real 3D algorithm to sort surfaces 2d charts with depth have no significant performance impact Grouping inside charts will be the number one point that slows things down Chart engine uses a different grouping algorithm Group the data in the data set BIRT 2.3 will use the DTE grouping capabilities Avoid extra markers, labels, shadows, gradients, etc… will impact the performance as it means more shapes and fills to draw

General Tips Reduce number of report items Concatenate values where makes sense First Name + Last Name Avoid table data bindings when not used Use new Crosstab report item when appropriate as it is tuned for such operations.

Rendering Tips PDF Set appropriate page size in the master page Will significantly decrease dynamic geometry HTML Avoid group sections with many items Will cause a long TOC list and will impact viewing performance

Q & A