Skip to content

Latest commit

 

History

History
61 lines (39 loc) · 5.85 KB

requirements-for-using-memory-optimized-tables.md

File metadata and controls

61 lines (39 loc) · 5.85 KB
title description author ms.author ms.reviewer ms.date ms.service ms.subservice ms.topic
Requirements for using memory-optimized tables
Learn about the requirements for using In-Memory OLTP, including SQL Database version, memory & storage considerations, and installation.
MikeRayMSFT
mikeray
randolphwest
10/05/2023
sql
in-memory-oltp
conceptual

Requirements for using memory-optimized tables

[!INCLUDE SQL Server]

This article describes the requirements for adoption of In-Memory features in SQL Server.

Requirements

In addition to the SQL Server 2022: Hardware and software requirements, the following are requirements to use [!INCLUDE inmemory-md]:

  • [!INCLUDE sssql16-md] SP 1 and later versions, any edition. For [!INCLUDE ssSQL14] and [!INCLUDE sssql16-md] RTM (pre-SP1), you need Enterprise, Developer, or Evaluation edition.

  • [!INCLUDE inmemory-md] requires the 64-bit version of [!INCLUDE ssNoVersion].

  • [!INCLUDE ssNoVersion] needs enough memory to hold the data in memory-optimized tables and indexes, and extra memory to support the online workload. For more information, see Estimate Memory Requirements for Memory-Optimized Tables.

  • When running [!INCLUDE ssNoVersion] in a virtual machine (VM), ensure there's enough memory allocated to the VM to support the memory needed for memory-optimized tables and indexes. Depending on the VM host application, the configuration option to guarantee memory allocation for the VM could be called Memory Reservation or, when using Dynamic Memory, Minimum RAM. Make sure these settings are sufficient for the needs of the databases in [!INCLUDE ssNoVersion].

  • Free disk space that is two times the size of your durable memory-optimized tables.

  • A processor needs to support the instruction cmpxchg16b to use [!INCLUDE inmemory-md]. All modern 64-bit processors support cmpxchg16b.

    If you use a virtual machine and [!INCLUDE ssNoVersion] displays an error caused by an older processor, see if the VM host application has a configuration option to allow cmpxchg16b. If not, you could use Hyper-V, which supports cmpxchg16b without needing to modify a configuration option.

  • [!INCLUDE inmemory-md] is installed as part of Database Engine Services.

    To install report generation (Determining if a Table or Stored Procedure Should Be Ported to In-Memory OLTP) and [!INCLUDE ssManStudioFull] (to manage [!INCLUDE inmemory-md] via [!INCLUDE ssManStudioFull] Object Explorer), Download SQL Server Management Studio (SSMS).

Note

Important notes on using [!INCLUDE inmemory]

Note

Starting with [!INCLUDE sssql16-md] SP 1, Standard and Express editions support [!INCLUDE inmemory-md], but they impose quotas on the amount of memory you can use for memory-optimized tables in a given database. In Standard edition this is 32 GB per database; in Express edition this is 352MB per database.

  • If you create one or more databases with memory-optimized tables, you should enable Instant File Initialization (IFI) by granting the [!INCLUDE ssNoVersion] service startup account the SE_MANAGE_VOLUME_NAME user right. Without IFI, memory-optimized storage files (data and delta files) are initialized on creation, which can have a negative effect on the performance of your workload. For more information about IFI, including how to enable it, see Database instant file initialization.

  • [!INCLUDE known-issue-memory-optimized]

Related content