23.8 Running the Report

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

  • Oracle Reports Builder automatically runs an error check on paper layout definitions and bind variables. Set the runtime parameter RUNDEBUG=NO to turn off this extra error checking at runtime.

  • For JSP report definitions, Oracle Reports Builder performs tag validation and checks for items such as duplicate field identification or malformed attributes. This feature is useful only during the design phase, but not in the production environment. By default, tag validation in Oracle Reports Services is off. To turn this option on, specify VALIDATETAG=YES in your HTTP request (for example, http://my.server.com/myreport.jsp?VALIDATETAG=YES).

    Note:

    Using VALIDATETAG=YES slows performance.
  • By default, the RECURSIVE_LOAD command line keyword used by both rwrun and rwservlet commands is set to YES, causing invalid external references of PL/SQL program units to automatically recompile. Set the RECURSIVE_LOAD=NO in a production environment, because this is useful only in a development environment.

  • For SQL queries, Oracle Reports takes advantage of the Oracle database's array processing capabilities for data fetching. This allows records to be fetched from the database in batches instead of one at a time, resulting in fewer calls to the database. However, array processing requires more memory on the execution platform to store the arrays of records returned. To reduce the network load (number of network trips) in a production environment, set the value of the ARRAYSIZE command line keyword (defined in kilobytes) to a large value.

  • As discussed in Section 23.4, "Tuning Reports Server Configuration", when running a large number of reports with Oracle Reports Servlet (rwservlet) or Reports Client (rwclient), set the EXPIRATION command line keyword to reflect the maxQueueSize and cacheSize values. For example, if the queue element in the server configuration files specifies maxQueueSize=6000, you can keep a maximum of 6000 jobs in the job queue. If you run more than 6000 jobs within a day, with EXPIRATION=1440 (1 day), you may lose some of the jobs even before the EXPIRATION time is met because Reports Server will remove the jobs to maintain the maxQueueSize and server stability, even though the jobs have not expired. Additionally, the cache element in the server configuration file should specify sufficient cacheSize should be allocated in order to maintain the 6000 jobs. As a general guideline, set EXPIRATION, maxQueueSize, and cacheSize according to the number of jobs you will run in one day.

  • Set the LONGCHUNK command line keyword to as large a value as possible, if your report uses the LONG, CLOB, or BLOB data types to retrieve large amounts of data. This reduces the number of increments taken by Oracle Reports to retrieve long values. On an Oracle database server, use the more efficient CLOB or BLOB data types, instead of LONG or LONG RAW.

  • If the Paper Parameter Form is not required, set the PARAMFORM command line keyword to NO.

  • Use the COPIES command line keyword carefully when printing to PostScript. Setting COPIES to a value greater than 1 requires that Oracle Reports save the pages in a temporary storage, in order to collate them. This increases the amount of temporary disk space used and the overhead of writing additional files results in slow performance.

  • When generating a report to PDF output, set the PDFCOMP command line keyword to NO. PDF output is compressed by default. Although compressed files download quickly, the time taken to generate a compressed file is much more when compared to a non-compressed file.

    Note:

    Running a Report to WebLayout works only if the weblayout port in the $ORACLE_INSTANCE/config/ReportsToolsComponent/ReportsTools/rwbuilder.conf file is set to the port of the managed server, as in the following example:
     <webLayout port="managed_server_port"
    docroot="<Domain_Home>/servers/WLS_REPORTS/stage/reports/reports/web.war"/>