dbUnit тесты работают крайне медленно
От: Аноним  
Дата: 01.06.09 06:52
Оценка:
Возникла следующая проблема: есть набор из 6 dbUnit-тестов. Для каждого из них подготовлен dataset, вот пример:
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
  <SCHEME.OBJINFO ID="10" STATUS="STATUS1" TYPE="TYPE1" CID="0" EDATE="2009-04-30"/>
  <SCHEME.OBJINFO ID="11" STATUS="STATUS1" TYPE="TYPE1" CID="0" EDATE="2009-04-30"/>
  <SCHEME.OBJINFO ID="12" STATUS="STATUS1" TYPE="TYPE1" CID="0" EDATE="2009-04-30"/>
  ...
</dataset>

Всего делается вставка в 9-10 записей в 4 разные таблицы (ссылаются друг на друга через foreign key).
Импорт делается следующим образом:

IDataSet dataSet = new FlatXmlDataSet(new File(fileName));
Connection jdbcConnection = ApplicationContext.getDataSource().getConnection();
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
DatabaseConfig config = connection.getConfig(); 
config.setFeature("http://www.dbunit.org/features/qualifiedTableNames", true);
DatabaseOperation.REFRESH.execute(connection, dataSet);


В итоге один такой импорт делается около минуты. База удалённая, таблицы содержат достаточно много записей, но через стандартные средства JDBC вставляется работает намного быстрее.
Из-за чего может так тормозить импорт через dbUnit, он как-то активно запрашивает и использует метаинформацию о таблицах, что-то ещё?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.