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