Я использую Spring 2.5 и Hibernate, которые идут с ним. Я бегу против базы данных Oracle 11g.Каков наилучший способ написать загрузчик данных?
Я создал свои DAO, которые расширяют HibernateTemplate. Теперь я хочу написать загрузчика, который вставляет 5 миллионов строк в таблицу моих персонажей. Я написал это в простой форме, например, прочитал строку из файла CSV, превратил ее в человека, за исключением таблицы. Продолжайте делать это до тех пор, пока файл CSV не будет пустым.
Проблема в том, что я выхожу из кучного пространства около 450000 строк. Таким образом, я удваиваю размер памяти с 1024 м до 2048 м, и теперь у меня заканчивается память около 900000 строк.
Hmmmmm ....
Так что я прочитал кое-что о отключив кэш запросов для Hibernate, но я не использую кэш L2, так что я не думаю, что это вопрос.
Я читал некоторые вещи о дозировании JDBC2, но я не думаю, что это относится к спящему режиму.
Итак, мне интересно, может быть, есть что-то принципиальное в Hibernate, которого я пропускаю.
Это буквально просто вопрос чтения из csv и загрузки в таблицу или вы делаете какую-то другую обработку? Если это первый, и это одноразовая статическая загрузка данных, я бы рекомендовал использовать загрузчик большого объема (например, Oracle sqlldr). – DaveRlz
@DaveRlz Кроме загрузки двух таблиц, я не выполняю никакой другой обработки. Но я хочу, чтобы мое решение было независимым от базы данных. – Thom
Если бы была только документация ... подождите, она есть: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#batch-inserts, http: //docs.jboss .org/hibernate/core/3.6/reference/en-US/html_single/# batch-statelesssession –