У меня в настоящее время есть запрос на пейджинг на стороне сервера как таковой:
SELECT * FROM (SELECT a.*, rownum rnum FROM (
( /* Insert Query Here */ ) ) a
WHERE rownum <= ((page_number + 1) * page_size))
WHERE rnum >= (((page_number + 1) * page_size)) - (page_size - 1);
Проблема, однако, заключается в попытке определить, что пользователь сортирует, так как он связан с сеткой.В настоящее время я использую:
ORDER BY
CASE sort_direction
WHEN 'ASC' THEN
CASE sort_column
WHEN 'PRIMARY_KEY' THEN
primary_key
ELSE key
END
END
ASC,
CASE sort_direction
WHEN 'DESC' THEN
CASE sort_column
WHEN 'PRIMARY_KEY' THEN
primary_key
ELSE key
END
END
DESC
Я использую это при каждом запросе, который я придерживаюсь схемы подкачки на стороне сервера.Проблема в том, что когда у меня есть сетка с несколькими полями, производительность существенно снижается.Есть ли другой способ сделать это?Нужно ли просто устанавливать меньше полей для пейджинга?