Как обработать 250K записей в ResultSet в многопоточном режиме или другим быстрым способом?
В настоящее время мой набор SQL-результатов содержит около 250 тыс. Записей, которые необходимо обработать. Это займет 25 секунд, чтобы завершить процесс. Я планирую сделать многопоточность на нем. Но не удалось разделить данные из ResultSet. При поиске в Google это говорит CachedRowSet, но нет надлежащего примера для реализации этого. Пожалуйста, кто-нибудь, помогите мне в этом. Заранее спасибо.
1 ответ
Вы можете написать запрос, присоединившись к нескольким таблицам, а также попытаться использовать эти два ключевых слова
FETCH and OFFSET.
For 1st Ex : fetch = 1, offset = 1000
For 2nd Ex : fetch = 1001, offset = 1000
Пожалуйста, проверьте эту ссылку https://technet.microsoft.com/en-us/library/gg699618(v=sql.110).aspx
Получая набор за набором из базы данных, вы можете использовать концепцию разбиения на страницы. Это не повлияет на пользовательский интерфейс в любом случае.
В случае Oracle: Вы можете сделать это легко на 12c, указав OFFSET.
В 12с,
SELECT val FROM table ORDER BY val OFFSET 4 ROWS FETCH NEXT 4 ROWS ONLY;
Чтобы сделать то же самое для 11g и более ранних версий, вам нужно использовать ROWNUM дважды, внутренний запрос и внутренний запрос соответственно.
Тот же запрос в 11g,
SELECT val FROM (SELECT val, rownum AS rnum FROM (SELECT val FROM table ORDER BY val) WHERE rownum <= 8) WHERE rnum > 4;
Здесь смещение 4.