Две вещи, чтобы рассмотреть следующие вопросы:
- Убедитесь, что вы разобрать ваш XML с помощью потокового API, таких как SAX или StAX, а не ходить по используя API DOM.
- Используйте готовое изделие и закажите свои вставки в пакетах, скажем, 1000 вставок.
В Java вы можете использовать StaxMate, что дает вам небольшой слой над StAX. Затем выполните проверку и вставку во внутренней петле:
Подготовка оператора вставки базы данных вне цикла как:
Connection conn = ...
PreparedStatement ps = conn.prepareStatement("INSERT INTO ... (...) VALUES (?, ?,...)");
static int i=0;
И во внутреннем цикле:
ps.setInt(1, a);
ps.setString(2, b);
...
ps.addBatch();
if(++i % 1000==0) ps.executeBatch()
Наиболее производительным способом является использовать хранилище данных XML и не выполнять синтаксический анализ. Если это неприемлемо, вам нужно сказать нам, почему. –
@med_alpa: Добро пожаловать в Stackoverflow. Не забудьте внимательно прочитать все разделы [FAQ] (http://stackoverflow.com/faq). Вы получите значок и улучшите свой опыт Stackoverflow. – menjaraz