我在集成測試環境中使用LocalDb - 在我的測試運行之前和之後實例化和處置我的實例。我可以在內存中運行LocalDb
但是,當我在我的實例中創建數據庫時,它仍將我的表和數據刷新到磁盤。是否可以在「內存」模式下運行LocalDb?如果是的話如何?
我在集成測試環境中使用LocalDb - 在我的測試運行之前和之後實例化和處置我的實例。我可以在內存中運行LocalDb
但是,當我在我的實例中創建數據庫時,它仍將我的表和數據刷新到磁盤。是否可以在「內存」模式下運行LocalDb?如果是的話如何?
不,LocalDB仍然是SQL Server,並且在SQL Server中沒有內存數據庫的概念。所有數據庫都是磁盤備份的,其中內存緩存位於其上。
您可能可以在測試工具中編寫自定義步驟,以便在完成測試後刪除數據庫並刪除數據庫文件。如果您使用TFS進行構建和測試運行,可能它已經存在了?但是LocalDB沒有任何東西可以自動完成。
這實際上並不是真的,SQL服務器沒有與SQL服務器2014的GA的內存,但localdb仍然沒有據我所知。 http://www.microsoft.com/en-us/server-cloud/solutions/in-memory.aspx – 2015-05-26 17:16:39
我不認爲SQL Server 2014的內存中功能包括內存**數據庫**。有內存**表**,但我明白,即使數據庫中的所有表都是內存中的,數據庫仍然由具有元數據的文件支持。 – 2015-05-27 16:26:36
順便說一句,感謝您修復了錯字! – 2015-05-27 16:26:50
您可以針對RAM磁盤中的數據庫運行測試。我剛剛完成了這一工作,似乎將集成測試性能提高了2到3倍!這是在一臺裝有SSD的MacBook Pro中託管的Windows 7 VM上。如果你有機械硬盤,你的milage可能會更好。
由於SQL Server允許您通過「AttachDbFileName =」指定連接字符串中的mdf文件,因此可以通過指向RAM磁盤中的mdf來利用該文件。
我使用的RAM磁盤設備驅動程序是ImDisk,它可用於64位和32位Windows。 Linux同行衆多。
如果您使用transactionscope - https://github.com/ritterim/automation-sql – ErikEJ 2015-04-02 16:31:04
我不太確定鏈接如何幫助(我搜索源代碼中的「事務」,但什麼也沒找到)。我的集成測試包括不會傳播事務的「進程內」服務 - 所以在單個事務中運行我的測試將無濟於事 - 但也許我誤解了您的意見。 – Lawrence 2015-04-02 16:37:51