Есть ли хорошая база данных в памяти, которая будет действовать как DB2

В настоящее время я использую DB2 для выполнения модульных тестов, но это происходит довольно медленно. Мне нужна хорошая база данных, содержащая все функции DB2. Существует ли такой тип базы данных в памяти или разрешена только стандартная функция SQL?

Спасибо.

ИЗМЕНИТЬ База данных DB2 находится на удаленном сервере, поэтому мне нужно решение для репликации схемы этой базы данных в локальной базе данных в памяти для ускорения тестов.

Ответ 2

Я думаю, что самым простым вариантом будет --- DB2.

Загрузите бесплатное экспресс-издание и установите его на свой компьютер. Вы замедляете скорость почти наверняка до узких мест в сети и ограничений с использованием клиента DB2, устанавливая локально, чтобы устранить их.

Следующим лучшим вариантом будет JavaDB (обычно называемый Derby!). Что похоже, но не совсем идентично DB2.

Использование любой другой базы данных приведет вас в трясину неподдерживаемых функций, несовместимого SQL, разных имен для одной и той же функции, различных функций с тем же именем функции и т.д.

Ответ 3

Почему бы не использовать tmpfs (Unix) или любое обычное решение для ramdrive для Windows? Или вы можете получить быстрый SSD.

Ответ 4

Как уже упоминалось Паскалем, Derby почти идентичен синтаксически для DB2. Попробовав это за одно и то же время назад, у нас возникла проблема с Derby, не поддерживающим последовательности, но протоколы соединения идентичны. Например, вы можете использовать драйвер JDBC DB2 для подключения к базе данных Derby.

Если ваше приложение абстрагирует ваше соединение с базой данных, например Hibernate, или NHibernate (если .Net), используя H2 или HSQLDB, также может работать на модульные тесты, предполагая, что вы не полагаетесь на хранимые процедуры и тому подобное.

Другим инструментом, который помогает с миграцией схемы, которая нацелена на несколько БД, является http://liquibase.org. Для сборки тестов вы создаете свою базу данных в БД памяти, и для развертывания вы создаете базу данных DB2 или генерируете миграцию script. Он будет строить базу данных с правильной схемой и предлагает условные миграции (например, грант недоступен в HSQL, поэтому вы запускаете набор изменений только для DB2).

Ответ 5

Не имея представления о функциях DB2, но sqlite может создать базу данных в памяти. Вы можете взглянуть на него.

Ответ 6

Если вы делаете свой буферный пул достаточно большим, ваша база данных DB2 также будет в памяти.

Ответ 7

Двумя возможными базами данных в памяти являются: - timesTen от Oracle. - SolidDB от IBM. Это может отправить транзакцию обратно в DB2, но запросы будут иметь действительно высокую производительность

Для получения дополнительной информации о soliddb http://www-01.ibm.com/software/data/soliddb/