我在集成测试环境中使用LocalDb - 在我的测试运行之前和之后实例化和处理我的实例。
但是,当我在我的实例中创建数据库时,它仍然会将我的表和数据刷新到磁盘。是否可以在“内存”模式下运行LocalDb?如果是这样的话?
答案 0 :(得分:6)
您可以对RAM磁盘中的数据库运行测试。我已经做了一段时间了,它似乎将集成测试性能提高了2或3倍!这是在带有SSD的MacBook Pro上托管的Windows 7 VM上。如果你有机械硬盘,你的milage可能会更好。
由于SQL Server允许您通过“AttachDbFileName =”在连接字符串中指定mdf文件,因此可以通过指向RAM磁盘中的mdf来利用它。
我使用的RAM磁盘设备驱动程序是ImDisk,可用于64位和32位Windows。 Linux对手很多。
答案 1 :(得分:3)
没有。 LocalDB仍然是SQL Server,而在SQL Server中没有内存数据库的概念。所有数据库都是磁盘支持的,内存缓存位于它们之上。
您可以在测试工具中编写一个自定义步骤,以便在测试完成后删除数据库并删除数据库文件。如果您正在使用TFS进行构建和测试运行,甚至可能已经存在?但是在LocalDB中没有任何东西能让它自动化。