Есть ли хорошая база данных в памяти, которая будет действовать как DB2
В настоящее время я использую DB2 для выполнения модульных тестов, но это происходит довольно медленно. Мне нужна хорошая база данных, содержащая все функции DB2. Существует ли такой тип базы данных в памяти или разрешена только стандартная функция SQL?
Спасибо.
ИЗМЕНИТЬ
База данных DB2 находится на удаленном сервере, поэтому мне нужно решение для репликации схемы этой базы данных в локальной базе данных в памяти для ускорения тестов.
Ответы
Ответ 1
Мне нужна хорошая база данных в памяти, которая будет включать все функции DB2.
Derby (ex Cloudscape) совместим с DB2. И он имеет режим памяти.
Возможно, вы также можете посмотреть H2 (с режимом совместимости DB2 ). Но даже если H2 будет быстрее, я бы рассмотрел Derby в вашем случае.
Ответ 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/