In-Memory OLTP (In-Memory Optimization)

APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

In-Memory OLTP can significantly improve the performance of transaction processing, data ingestion and data load, and transient data scenarios. To jump into the basic code and knowledge you need to quickly test your own memory-optimized table and natively compiled stored procedure, see

A 17-minute video explaining In-Memory OLTP and demonstrating performance benefits:

To download the performance demo for In-Memory OLTP used in the video:

For a more detailed overview of In-Memory OLTP and a review of scenarios that see performance benefits from the technology:

Note that In-Memory OLTP is the SQL Server technology for improving performance of transaction processing. For the SQL Server technology that improves reporting and analytical query performance see Columnstore Indexes Guide.

Several improvements have been made to In-Memory OLTP in SQL Server 2016 (13.x) and SQL Server 2017 (14.x), as well as in Azure SQL Database. The Transact-SQL surface area has been increased to make it easier to migrate database applications. Support for performing ALTER operations for memory-optimized tables and natively compiled stored procedures has been added, to make it easier to maintain applications.


Try it out

In-Memory OLTP is available in Premium and Business Critical tier Azure SQL databases and elastic pools. To get started with In-Memory OLTP, as well as Columnstore in Azure SQL Database, see Optimize Performance using In-Memory Technologies in SQL Database.

In this section

This section provides includes the following topics:

Topic Description
Quick Start 1: In-Memory OLTP Technologies for Faster Transact-SQL Performance Delve right into In-Memory OLTP
Overview and Usage Scenarios Overview of what In-Memory OLTP is, and what are the scenarios that see performance benefits.
Requirements for Using Memory-Optimized Tables Discusses hardware and software requirements and guidelines for using memory-optimized tables.
In-Memory OLTP Code Samples Contains code samples that show how to create and use a memory-optimized table.
Memory-Optimized Tables Introduces memory-optimized tables.
Memory-Optimized Table Variables Code example showing how to use a memory-optimized table variable instead of a traditional table variable to reduce tempdb use.
Indexes on Memory-Optimized Tables Introduces memory-optimized indexes.
Natively Compiled Stored Procedures Introduces natively compiled stored procedures.
Managing Memory for In-Memory OLTP Understanding and managing memory usage on your system.
Creating and Managing Storage for Memory-Optimized Objects Discusses data and delta files, which store information about transactions in memory-optimized tables.
Backup, Restore, and Recovery of Memory-Optimized Tables Discusses backup, restore, and recovery for memory-optimized tables.
Transact-SQL Support for In-Memory OLTP Discusses Transact-SQL support for In-Memory OLTP.
High Availability Support for In-Memory OLTP databases Discusses availability groups and failover clustering in In-Memory OLTP.
SQL Server Support for In-Memory OLTP Lists new and updated syntax and features supporting memory-optimized tables.
Migrating to In-Memory OLTP Discusses how to migrate disk-based tables to memory-optimized tables.

More information about In-Memory OLTP is available on:

See Also

Database Features