i am using a oracle db.
During testing of my serverside sorting and pageing functionality of the RadGridView i have found that the orm does generate a select statement which results in a full tablescan.
Following the serverside linq statement to get one page of the dictionary table:
query = from c in this.DataContext.TXTs
.Skip((iPage - 1) * 20)
Following the SQL statement from the database session view in the oracle enterprise manager:
FROM (SELECT a.*, ROWNUM oa_rownum
FROM (SELECT a.txt_s_key col1, a.txt_i_lng_nr col2,
a.txt_i_tag col3, a.txt_s_text col4
FROM txt a
ORDER BY a.txt_s_key) a
WHERE ROWNUM <= :take)
WHERE oa_rownum > :skip
This is a very time consuming way if my dictionary have millions of rows and each page request makes a full table scan.
My target is to fetch only 20 records per page and have the page switch take less than 1 second.
Is there any other way to do the pageing, or do is something wrong?
Have anyone a solution?