SQL服务器是否支持内存数据库?
Does SQL Server support in-memory database?
我基本上有一个测试场景,我
- 创建数据库
- 用一些数据填充它
- 执行待测业务逻辑,修改数据。我不拥有业务逻辑实现或数据库架构。我必须测试已经存在的东西。
- 断言数据已按预期更改
- 删除数据库
SQL 服务器是否仅在内存中支持类似的东西,以便我可以通过删除 #1 和 #5 来加快速度?明明不需要坚持
SQL 服务器有内存中的 OLTP。此功能与您正在研究的功能非常接近。从 SQL Server 2016 SP1 开始可以在所有版本中使用,包括 sql express。
Obviously I don't need persistence
选项 DURABILITY=SCHEMA_ONLY
仅保留元数据。这种情况对于暂存 table 是最佳的,因为它会导致 lock/latch/log 自由数据加载方式。显然,table 将无法生存 instance/service 重启。
CREATE DATABASE [Test]
GO
-- Memory Optimized FG
ALTER DATABASE [Test] ADD FILEGROUP [MemoryOptimizedFG] CONTAINS MEMORY_OPTIMIZED_DATA
ALTER DATABASE [Test] ADD FILE (name='Test1', filename='D:\SQLData\TestInMemory') TO FILEGROUP [MemoryOptimizedFG]
GO
CREATE TABLE dbo.[TestTable] (
ID int NOT NULL IDENTITY (1, 1) PRIMARY KEY NONCLUSTERED,
ColumnID int NOT NULL,
Description varchar(100) NOT NULL,
dateAndTime datetime NOT NULL
) WITH (MEMORY_OPTIMIZED=ON, DURABILITY=SCHEMA_ONLY)
GO
参考文献:
我基本上有一个测试场景,我
- 创建数据库
- 用一些数据填充它
- 执行待测业务逻辑,修改数据。我不拥有业务逻辑实现或数据库架构。我必须测试已经存在的东西。
- 断言数据已按预期更改
- 删除数据库
SQL 服务器是否仅在内存中支持类似的东西,以便我可以通过删除 #1 和 #5 来加快速度?明明不需要坚持
SQL 服务器有内存中的 OLTP。此功能与您正在研究的功能非常接近。从 SQL Server 2016 SP1 开始可以在所有版本中使用,包括 sql express。
Obviously I don't need persistence
选项 DURABILITY=SCHEMA_ONLY
仅保留元数据。这种情况对于暂存 table 是最佳的,因为它会导致 lock/latch/log 自由数据加载方式。显然,table 将无法生存 instance/service 重启。
CREATE DATABASE [Test]
GO
-- Memory Optimized FG
ALTER DATABASE [Test] ADD FILEGROUP [MemoryOptimizedFG] CONTAINS MEMORY_OPTIMIZED_DATA
ALTER DATABASE [Test] ADD FILE (name='Test1', filename='D:\SQLData\TestInMemory') TO FILEGROUP [MemoryOptimizedFG]
GO
CREATE TABLE dbo.[TestTable] (
ID int NOT NULL IDENTITY (1, 1) PRIMARY KEY NONCLUSTERED,
ColumnID int NOT NULL,
Description varchar(100) NOT NULL,
dateAndTime datetime NOT NULL
) WITH (MEMORY_OPTIMIZED=ON, DURABILITY=SCHEMA_ONLY)
GO
参考文献: