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
Filed bug# 8890936 for investigation.
ReplyDeleteBug is reported as fixed for version 11.1.2.0.0 yet it is not on 11.1.1.3
ReplyDelete