SQL Sever поддерживает базу данных памяти? - PullRequest
0 голосов
/ 08 марта 2019

У меня есть в основном сценарий тестирования, где я

  1. Создать базу данных
  2. Заполните его некоторыми данными
  3. Выполнение тестируемой бизнес-логики, которая модифицирует данные. Мне не принадлежит реализация бизнес-логики, а не схема БД. Я должен проверить, что там уже есть.
  4. Утверждение, что данные изменены, как и ожидалось
  5. Удалить базу данных

Поддерживает ли SQL Server что-то подобное только в памяти, чтобы я мог его запустить? Очевидно, мне не нужно упорство

1 Ответ

1 голос
/ 08 марта 2019

SQL Server имеет OLTP в памяти. Эта функция довольно близка к тому, что вы изучаете. Запуск SQL Server 2016 с пакетом обновления 1 (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:\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

Рекомендации:

...