Performance-issues using View Accessors and List of Values :
The default behavior of the JDeveloper and ADF has a negative effect on the performance of your application with LOV's.
For many cases we are showing some components as select one choice i.e. LOV which will be based on some VO.For that we create ViewAccessors.
ex.
Above screen shows the attribute(Descri) on which LOV is made with SomeVo.
Suppose we have to define LOV in EmployeeVO on department_id attribute.For that we have to create one DepartmentVO and EmployeeVO.
We will create 1 ViewAccessor for DepartmentVO based on department id in EmployeeVO.
If you drag this EmployeeVO on your page you can see that executeQueryForCollection is called only once for EmployeeVO but for multiple times it is called for DepartmentVO.
The query to determine the choice-list values for the DepartmentId is executed for every row in the EmployeeView.
This is unnecessary and can have the performance impact of your application.
The behavior is caused by a property of the view accessor that is 'Row Level Bind Values'.
As show below.
This can have a negative impact on the number of queries executed, and the performance of your application.
Default this property value is blank and you can give values from (true or false).blank value is nothing but "true".
For performance isue set this value explicitly to 'false' if you have no bind variables that really depend on some attribute values in the row.
Conclusion : For ViewAccesssor setting 'Row Level Bind Values' to "false" increases your application performance.
Comments
Post a Comment