Многопоточное чтение базы данных

В нашем Java-приложении у меня есть требование прочитать около 80 миллионов записей из базы данных Oracle. Я пытаюсь переделать многопоточную программу для этого. В настоящее время мы используем пул потоков Java 5 с 10 потоками, считывающими базу данных параллельно на основе шаблона первичного ключа. Каждый поток будет читать различные шаблоны, такие как 001 * и 002 *.

Как я могу улучшить производительность этой программы? Я имею в виду шаблон проектирования, имеющий ведущий поток для чтения базы данных и делегирования обработки дочерним потокам. В нашем существующем проекте различные потоки обращаются к таблице, имея 10 соединений jdbc. С новым подходом у меня будет только один поток, читающий таблицу.

У нас разные операторы выбора для каждой темы, такие как select.count(*) from "+table+ " where id like '"+format + "%'"

Хорошо, звучит хорошо, читая шаблон rowid, но хорошо ли это читать по rowid или rownum?

Может ли какой-либо орган порадовать плюсы и минусы нового подхода, и есть ли другой способ, которым мы можем его реализовать.

Ответы на вопрос(3)

Ваш ответ на вопрос