Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

VO Tuning Confusion or Misunderstood.

Leon DorflingJul 11 2011 — edited Jul 13 2011
Hi

Using Jdev 11.1.1.4.0 I have created a simple employees VO based on an EO and dragged it into a page as a read only table. My goal is to analyze the logs to be able to see exactly the impact the various VO tuning options have on database calls.

My first scenario has the following settings, keeping in mind that the employees table contains 107 rows.

All Rows, in Batches of 25, As Needed, Query Optimizer Hint : FIRST_ROWS, Access Mode : Scrollable, Range Size -1.

Running the page I expect to see the following behavior. The query being executed twice, due to my table rendering more than 25 rows and when scrolling down, past row 50, another query being executed for every 25 records.

Analyzing the logs I can only see that the query has been executed twice for the initial load of the page. Scrolling past row 50 no further query executions are logged.

What I expected was for each Fetching Data… message on the page a corresponding query execution would be logged.

This is where I am confused. When reading the ADF developer guide chapter 39 2.4.1, I understand that using the above settings that for the initial page, which has more than 25 rows, it should execute the query twice, returning 25 rows per trip to the database. Then for each range of 25 rows scrolled, another trip to the database. Have I misunderstood the documentation or does the logging not create log messages for subsequent data fetches from the database or does the initial query executions retrieve all 107 rows into cache and that the Fetching Data… messages indicate rows that are being fetched from cache?

The second scenario has the following settings.

All Rows, in Batches of 1, As Needed, Query Optimizer Hint : FIRST_ROWS, Access Mode : Range Paging, Range Size 25.

The expected behavior is that for each range of 25 rows a query execution is done. From the logs this is also seen as scrolling back and forth in the page an query is executed for the range size + 3 records. Which is expected?

“<OracleSQLBuilderImpl> <bindRangePagingParams> [446] setting rownum query between (25, 53)
<ADFLogger> <addContextData> Execute query”

So as per the ADF Developer guide only 25 rows are being read into cache, except for the initial page load. However I am either confused or misunderstand the documentation for scenario one.

What am I missing when trying to analyze scenario 1?

Kind Regards

Leon.
This post has been answered by NickH77 on Jul 13 2011
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 10 2011
Added on Jul 11 2011
4 comments
2,038 views