Calculations Accessing the Data

Diagnosing and Tuning Oracle Reports 24-41 This functionality is currently not supported in Oracle Reports distribution functionality, as this is specific to PDF and printer outputs only. For more information, refer to Section B.1.50, REPORTS_GRAPH_IMAGE_DPI . Improving performance of JPEGGIFPNG output image formats If your input image format is JPEG, it is recommended that you do not set the REPORTS_OUTPUTIMAGEFORMAT environment variable to GIF or PNG, which will increase the image size more and might degrade the performance problem. Similarly, if your input image format is GIF or PNG, it is recommended that you do not set the REPORTS_OUTPUTIMAGEFORMAT environment variable to JPEG. For better performance, use the same format for both input and output format. For more information, refer to Section B.1.58, REPORTS_OUTPUTIMAGEFORMAT . Improving performance of JPEG images The REPORTS_JPEG_QUALITY_FACTOR environment variable specifies the level of image quality desired for JPEG images. It provides control over the trade-off between JPEG image quality and size of the image. The better the quality of the image, the greater the image file size and lower performance. If you want to improve the performance, set value to 0. The default value is 100 highest quality. A value of 75 provides a good quality image, while ensuring a good compression ratio. For more information, refer to Section B.1.52, REPORTS_JPEG_QUALITY_FACTOR .

24.6.2 Web Layout and JSP Report Definition

In Oracle Reports, you can use your favorite Web authoring tool to design the static portion of your Web page and then use Oracle Reports Builder to insert the dynamic portion data into appropriate sections of the page. A poorly designed Web page impacts perceived performance. Alternatively, you can use pre-defined Oracle Database Web templates to build the Web page. Avoid including Java code in a JSP file mixing business and data access Java code with presentation logic as it increases the JSPs footprint and limits the efficient use and management of system resources. Customized formatting of a Web page is always an expensive operation. Any type of formatting that cannot be natively achieved through Oracle Reports for example, change the foreground color of a data block should be done using Java. We discourage the use of PLSQL wrappers for formatting purposes. A .jsp report definition can contain both a paper layout definition and a Web layout definition. Oracle Reports always formats the paper layout definition first when executing the report, since the Web layout section of a JSP report could contain an rw:include tag referencing a paper layout object. If your JSP report does not reference any paper layout objects at all, we recommend using the SUPPRESSLAYOUT command line keyword to prevent Oracle Reports executing the paper layout formatting. Note: When you set a DPI value greater than 250 and your graph is bigger than 5x5 approximately, you may also want to change the JVM heap size value using the REPORTS_JVM_OPTIONS environment variable to avoid the Out Of Memory error for the JVM. 24-42 Publishing Reports to the Web with Oracle Reports Services

24.7 General Layout Guidelines

This section outlines guidelines that you can follow when designing your reports layout to improve performance: ■ Fetching Ahead ■ Bursting and Distribution

24.7.1 Fetching Ahead

Oracle Reports enables you to display data such as total number of pages or grand totals, in the report margins or on the report header pages. This option, although useful, forces the entire report to be fetched ahead. Fetching-ahead requires the entire report to be processed before the first page can be output. The usual model is to format pages as and when required. Although the fetched-ahead functionality does not affect the overall time the report takes to generate, it affects the amount of temporary storage required and the time taken before the first page can be viewed. This is an example of perceived performance as opposed to actual performance. If the report is to be output to the screen in a production environment, fetching ahead should be avoided unless the performance variance is deemed acceptable.

24.7.2 Bursting and Distribution

With report bursting, a report layout can be made up of three distinct sections: header, body, and trailer. A report can comprise all three sections, or it can be viewed as three separate reports within one report. Oracle Reports enables you to control bursting at group record level offering a further level of granularity. This is made possible by the Distribution and Repeat On properties for each individual section. The performance gain is evident when bursting is used in conjunction with distribution, allowing each section of a report to have multiple formats and sent to multiple destinations. Once the distribution options has been set the report needs only to be run once, to be output to multiple destinations with a single execution of the querys. Previously the report had to be executed multiple times. When you implement bursting and distribution in a report, you can generate section-level distribution by setting the Repeat On property for a section to a data model break group, which generates an instance of the section for each column record of that break group. Then, you can distribute each instance of the section as appropriate for example, to individual managers in the MANAGER group. If you set the Repeat On property for more than one of the Header, Main, and Trailer sections of a report, all Repeat On property values must be set to the same data model break group. If the Repeat On property for any one of the Header, Main, and Trailer sections is set to a different data model break group, Oracle Reports raises any of the following messages: REP-0069: Internal Error REP-57054: In-Process job terminated: Terminated with error REP-594: No report output generated

24.8 Running the Report

You can further affect the overall performance by setting specific runtime options: