01.02.2013 Views

Publishing Reports to the Web - Downloads - Oracle

Publishing Reports to the Web - Downloads - Oracle

Publishing Reports to the Web - Downloads - Oracle

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Methodology<br />

20.1.2.1 Non-SQL Data Sources<br />

To publish data from any data source use <strong>the</strong> pluggable data source architecture in<br />

<strong>Oracle</strong> <strong>Reports</strong>. Out-of-<strong>the</strong>-box <strong>Oracle</strong> <strong>Reports</strong> supports non-SQL data sources, such as<br />

<strong>the</strong> XML, Text, and JDBC pluggable data sources. Both XML and Text pluggable data<br />

sources can be accessed through a remote URL (even across firewalls). If speed is a<br />

concern, download <strong>the</strong> data locally and use <strong>the</strong> local data stream ra<strong>the</strong>r than a remote<br />

URL. You can also specify <strong>the</strong> domains for which you can bypass a proxy server.<br />

The XML pluggable data source supports runtime XML data validation. Select <strong>the</strong><br />

Validate Data Source check box in <strong>the</strong> XML query wizard <strong>to</strong> activate runtime XML data<br />

validation. Selecting Validate Data Source ensures that <strong>the</strong> XML data is verified as it is<br />

fetched against <strong>the</strong> data definition specified in <strong>the</strong> DTD or in <strong>the</strong> XML schema. This is<br />

a very costly operation and proves <strong>to</strong> be useful only when you develop <strong>the</strong> report and<br />

not during production. You will see a noticeable performance difference when <strong>the</strong><br />

XML data stream is very large.<br />

You can specify ei<strong>the</strong>r an XML schema or a DTD schema for <strong>the</strong> data definition. An<br />

XML schema forces type checking. Whereas, a DTD schema does not require type<br />

checking as all data is treated as strings.<br />

Note: Ensure that <strong>the</strong> data types of <strong>the</strong> non-SQL sources match —<br />

columnwise.<br />

You can also specify an extensible style sheet language (XSL) file for <strong>the</strong> XML data<br />

stream <strong>to</strong> convert it from any format in<strong>to</strong> a simple row set/row data feed. It is better <strong>to</strong><br />

have data in <strong>the</strong> correct format <strong>to</strong> start with, unless you need <strong>to</strong> apply <strong>the</strong> XSL at run<br />

time.<br />

Pluggable Text data sources support <strong>the</strong> use of cell wrappers. This causes <strong>the</strong> file<br />

format level delimiter <strong>to</strong> be ignored for every field that has a wrapper defined. Avoid<br />

using cell wrappers unless really required.<br />

The JDBC pluggable data source supports JDBC bridges, as well as, thick and thin<br />

JDBC drivers. Selecting <strong>the</strong> driver directly impacts <strong>the</strong> fetching of data. The choice<br />

depends on <strong>the</strong> application and <strong>the</strong> database being used. Using a native driver<br />

generally results in better performance.<br />

20.1.2.2 Database Indexes<br />

Columns used in a SQL WHERE clause should be indexed. The impact of indexes used<br />

on columns in <strong>the</strong> master queries of a report are minor, as <strong>the</strong>se queries access <strong>the</strong><br />

database once. To improve performance significantly, indexes should be used on any<br />

linked columns in <strong>the</strong> detail query.<br />

Note: Lack of appropriate indexes can result in many full-table<br />

scans and slows down performance.<br />

20.1.2.3 Calculations<br />

Within a report (ei<strong>the</strong>r through summary or formula columns) ensure that most of <strong>the</strong><br />

calculations are performed by <strong>the</strong> data source. In case of SQL queries, calculations are<br />

performed on <strong>the</strong> database ra<strong>the</strong>r than on <strong>the</strong> data retrieved by <strong>the</strong> report.<br />

User-defined functions and procedures s<strong>to</strong>red by <strong>the</strong> database can also be included in<br />

<strong>the</strong> query select list of an <strong>Oracle</strong>9i or a JDBC query. This is more efficient than using a<br />

local function, since <strong>the</strong> calculated data is returned as part of <strong>the</strong> result set from <strong>the</strong><br />

database.<br />

Tuning <strong>Oracle</strong> <strong>Reports</strong> 20-9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!