Синтаксический анализ XML: вставка данных XML в базу данных: производительность - PullRequest
0 голосов
/ 15 декабря 2011

У вас есть представление о наиболее эффективном способе синтаксического анализа XML в базе данных.

«Самый быстрый путь».

прочитайте XML, сделайте несколько проверок, затем вставьте результат в базу данных.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Две вещи для рассмотрения:

  1. Убедитесь, что вы анализируете XML с использованием потокового API, такого как SAX или StAX, а не проходите через DOM API.
  2. Используйте подготовленное заявление и пакетируйте свои вкладки в пакетах, скажем, 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()
0 голосов
/ 15 декабря 2011

Основной вопрос:

Вы хотите, чтобы это было сделано программно или с уже поданным заявлением?

Программно

Это зависит от того, как написан XML.Если имена тегов / свойств совпадают с таблицами / столбцами базы данных, вы можете написать их довольно простым способом, если нет, вам сначала нужно сопоставить имена тегов / свойств xml, чтобы они соответствовали структуре базы данных.

Для правильного ответа мне нужно знать текущий язык, на котором вы будете его писать.

Приложения

Один пример: http://www.altova.com/databasespy/database-import-export.html

...