SQL Server支持内存数据库吗?



我基本上有一个测试方案,其中i

  1. 创建数据库
  2. 用一些数据填充
  3. 执行要测试的业务逻辑,以修改数据。我不拥有业务逻辑实现或数据库模式。我必须测试已经存在的东西。
  4. 断言数据按预期更改
  5. 删除数据库

SQL Server仅在内存中支持类似的东西,以便我可以通过删除#1和#5来加速它?显然我不需要持久性。

SQL Server具有内存OLTP。此功能非常接近您所研究的功能。启动SQL Server 2016 SP1在所有版本中都有可能,包括SQL Express。

显然我不需要持久性

选项DURABILITY=SCHEMA_ONLY仅保留元数据。这样的方案对于分期表来说是最佳的,因为它会导致锁定/闩锁/日志的数据负载方式。显然,该表将无法生存实例/服务重新启动。

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:SQLDataTestInMemory') 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

参考:

  • https://www.red-gate.com/simple-talk/sql/database-administration/in-memory-oltp-ustanding-memory-optimatimized-tables/
  • https://learn.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/in-memory-oltp-in-memory-oltp-in-memory-optimization?view = sql-server-2017

相关内容

  • 没有找到相关文章

最新更新