Tuning for ADF


MaxFetchSize is the maximum number of rows fetched from the database for the current view object. Setting -1 will retrieve unlimited number of rows or the entire rows returned from a query. Setting 0 will cause no query execution and no rows will be returned. Check in the VO for this property.



This is the number of rows that is returned on a single database round trip. This setting will determine how many rows will be returned for a particular view object at run-time on a single query. Set the size In batches of n+1. check in VO, AM instance, table component for this property.



This is the mode that controls how the rows are retrieved in a JDBC resultset. Some of the modes allowed for the FETCH_ALL, FETCH_AS_NEEDED. Number of rows retrieved is based on the RangeSize of the VO.

FETCH_ALL – will fetch all the rows at a time. This causes all rows to be retrieved from a JDBC result set immediately, and then closes the result set.


FETCH_AS_NEEDED – will fetch number of rows defined by the RangeSize first and is again fetched upon request. A fetch mode that causes rows to be retrieved from a JDBC result set as the user navigates through the row set. The result set is closed when the user reaches the end of the row. The executeQuery() will fetch this much only.



Number or rows to be displayed in the Iterator collection. Table rows maps to this. By default is 25. Maps from View Object to the UI Collection. Check in VO, Page definition file for this property.



ListRangeSize is the setting for the List of values that is added to the attribute in the View object which will be set to less value to reduce large number of rows getting returned unnecessarily. Setting -1 will retrieve all the rows. Check in the VO for this property.


Specify a value to determine if a result set returns the number of rows you specify as a value. If you set RowCountThreshold to 0, the Iterator returns the estimated row count in the result set by executing the count query. If you set RowCountThreshold to less than 0, the Iterator does not execute the count query. If RowCountThreshold is set to -1 then it will load the table faster and will not execute the SELECT COUNT query for the number of data retrieved. Check in page definition file.



This defines how the row is accessed in a view object. The modes are

SCROLLABLE – Rows are cached in a collection. This is the most flexible mode for accessing rows and working with a RowSet. Ideal for less number of rows. For large numbers use RANGE_PAGING or RANGE_PAGING_INCREMENTAL.

FORWARD_ONLY– Sequential Access to rows in a collection. The Iterator on this RowSet will not allow scrolling back


RANGE_PAGING – The paging is done based on the RangeSize defined. If the rows which are requested are not in the range then the rows are fetched from the database using the ROWNUM query. it only keeps the current range (or “page”) of rows in memory in the view row cache at a time

RANGE_PAGING_AUTO_POST – The rowset will post any changes in the transaction for rows out of the current range.


RANGE_PAGING_INCR – the UI incrementally displays the result set from the memory cache and thus supports scrolling within a single database query. the UI incrementally displays the result set from the memory cache and thus supports scrolling within a single database query. The number of rows that the end user can scroll though in a single query is determined by the range size and a range paging cache factor that you set. For example, suppose that you set the range size to 4 and the cache factor to 5. Then, the maximum number of rows to cache in memory will be 4*5 = 20


Query Optimizer

These are hints added to the query to help retrieve the record efficiently. This will influence the execution plan of the query.  Check in the VO.

ALL_ROWS – Fetch all the rows as soon as possible.

FIRST_ROWS – fetch the first rows as quickly as possible

Row Limit

This is updated in the adf-config.xml file. The value of -1 will fetch all the rows for the VO in the application. You can limit the row limit fetched by the VO in an application using this option.



The number of rows used to size the component height. The default value is -1 (no auto-sizing for any number of rows). The height of the component can grow to a maximum of autoHeightRows after which a scrollbar is displayed. A value of 0 can be used to default the autoHeightRows to the current fetchSize. autoHeightRows value cannot be larger than fetchSize attribute. Check in the table component.


2 thoughts on “Tuning for ADF

  1. Raghu

    Brilliant! Thought of blogging about these properties. But i should admit, this is so awesome. Good Work. Cheers


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s