我目前使用DB2來進行單元測試,但是有時候相當慢。我需要一個很好的內存數據庫,其中包含DB2的所有功能。這種類型的內存數據庫是否存在,還是隻允許標準的SQL功能?是否有一個好的內存數據庫,它的行爲就像DB2
謝謝。
編輯 DB2數據庫是在遠程服務器上,所以我需要一個解決方案來複制該數據庫的模式的本地內存中的數據庫,以加快測試。
我目前使用DB2來進行單元測試,但是有時候相當慢。我需要一個很好的內存數據庫,其中包含DB2的所有功能。這種類型的內存數據庫是否存在,還是隻允許標準的SQL功能?是否有一個好的內存數據庫,它的行爲就像DB2
謝謝。
編輯 DB2數據庫是在遠程服務器上,所以我需要一個解決方案來複制該數據庫的模式的本地內存中的數據庫,以加快測試。
我需要一個很好的內存數據庫,它將包含DB2的所有功能。
Derby(例如Cloudscape)是DB2的語言兼容。它有一個內存模式。
也許還會看看H2(DB2 compatibility mode)。但即使H2會更快,我會考慮德比在你的情況。
德比從不支持存儲過程語句,因此它與DB2不兼容。 – Kishore 2016-09-20 13:42:09
爲什麼不使用tmpfs(Unix)或Windows的任何傳統ramdrive解決方案? 或者,你可以得到一個快速的SSD。
數據庫位於遠程服務器上。所以,除非我在我的工作站上安裝DB2服務器,否則這不是一個選項。 – Drahakar 2010-09-21 16:20:23
不知道DB2具有哪些功能,但是sqlite可以創建in-memory database。你可能想看看它。
如果你使你的緩衝池足夠大,你的DB2數據庫也將在內存中。
正如Pascal所述,Derby在語法上幾乎與DB2相同。前段時間嘗試過相同的事情後,我們遇到了Derby不支持序列的問題,但連接協議完全相同。例如,您可以使用DB2 JDBC驅動程序連接到Derby數據庫。
如果您的應用程序使用Hibernate或NHibernate(如果.Net)抽象數據庫連接,則使用H2或HSQLDB也可以用於單元測試,前提是您不依賴存儲過程等。
另一個有助於模式遷移的工具是http://liquibase.org。對於測試版本,您可以使用它構建內存數據庫,併爲部署創建DB2數據庫或生成遷移腳本。它將使用正確的模式構建數據庫,並提供條件遷移(例如,授予在HSQL中不可用,因此您只爲DB2運行更改集)。
我認爲最簡單的選擇是--- DB2。
下載免費贈送快速版,並將其安裝到您的PC上。幾乎可以肯定的是,使用DB2客戶端的速度降低到網絡瓶頸和侷限性,在本地安裝會消除這些瓶頸。
第二好的東西是JavaDB(以前稱爲Derby!)。這與DB2相似但不完全相同。
使用任何其他數據庫都會將您轉儲到不受支持的功能,不兼容SQL,相同功能的不同名稱,具有相同功能名稱的不同功能等等。
兩種可能的內存數據庫是: - Oracle的十倍。 - IBM提供的SolidDB。這一個可以將交易回DB2,但查詢將有一個非常高的性能
每個數據庫是不同的更多信息。除DB2以外的數據庫都不會有每個DB2功能。如果不使用DB2,則不能擁有「DB2的全部功能」。你需要什麼**確切的**功能? – 2010-09-21 13:13:24
有很多應用程序正在使用它,並且在這些應用程序中記錄所有SQL查詢幾乎是不可能的。 – Drahakar 2010-09-21 13:45:54
如果你不知道你需要什麼功能,那麼你不能取代它,你能嗎?如果你不知道所有的功能,那麼除DB2以外,不能使用任何數據庫。 – 2010-09-21 19:39:02