Как обработать 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.

Другие вопросы по тегам