Sunday, September 6, 2009

ExecuteEmptyRowSet and Range Paging. (Fixed in 11.1.2)

As andrejus showed you can reduce the time loading a page by executing Empty row set before page opens.
http://andrejusb.blogspot.com/2009/08/oracle-adf-tuning-preventing-sql-query.html


Yet this does not combine with Range Paging since getEstimatedRowCount give result in an empty row set when Range paging is used.


To test that i created an Employees view object and a method in application module that executes empty row set and estimate row count:


public long emptyRowSetCount(){
this.getEmployeesView1().executeEmptyRowSet();
return getEmployeesView1().getEstimatedRowCount();
}


this return 0 in default view object.


but if i set Employees view object Access Mode = Range paging then the method return the count of rows of the database.



The getFetchedRowCount return 0 in both cases but this is not exposed in the bindings and on the pages we usually use #{bindings.EmployeesView1Iterator.estimatedRowCount}.


In ViewObjectImpl java doc, the method executeEmptyRowSet does not have any comments, so its not clear what it does.


So i wander if this is an issue of executeEmptyRowSet or getEstimatedRowCount or Range Paging...


Test Case:
http://adfbugs.googlecode.com/files/TestEmptyRowSet.zip
Not Reproduced in jdeveloper 11.1.2

2 comments:

  1. Filed bug# 8890936 for investigation.

    ReplyDelete
  2. Bug is reported as fixed for version 11.1.2.0.0 yet it is not on 11.1.1.3

    ReplyDelete