Hello,
We are still working on the grid using a datasource has a backend with the progressive loading pattern and the SQL paging in order to let users scroll data coming from a huge table.
The generated SELECT statement may cause inconsistency between different fetchData() invoked from scrolling (we are using SQLPaging=SQL_LIMIT):
Oracle do not ensure that two different SELECT * FROM t_huge_table; will return the lines in the same order. As the ROWNUM clause is evaluated after that, we may display the same lines.
A solution can be to add a $defaultOrderByClause which order by every columns, but it may cause poor performances (but it should be okay if a WHERE clause exists to limit the number of retrieved rows).
Please note that the same issue may occur with the JDBC_SCROLL as multiple executions of the same SELECT statement are done.
Do you have any feedback on this situation?
Thanks,
A.
We are still working on the grid using a datasource has a backend with the progressive loading pattern and the SQL paging in order to let users scroll data coming from a huge table.
The generated SELECT statement may cause inconsistency between different fetchData() invoked from scrolling (we are using SQLPaging=SQL_LIMIT):
Code:
SELECT * FROM (SELECT /*+ FIRST_ROWS(76) */ a.*, rownum myrownum FROM (SELECT T_HUGE_TABLE.T_DT, T_HUGE_TABLE.INSTANCE, T_HUGE_TABLE.INTERNAL_ORDER_ID, T_HUGE_TABLE.SIDE, T_HUGE_TABLE.ISIN FROM T_HUGE_TABLE) a where rownum <=76) WHERE myrownum >= 1
A solution can be to add a $defaultOrderByClause which order by every columns, but it may cause poor performances (but it should be okay if a WHERE clause exists to limit the number of retrieved rows).
Please note that the same issue may occur with the JDBC_SCROLL as multiple executions of the same SELECT statement are done.
Do you have any feedback on this situation?
Thanks,
A.
Comment