in-memory oltp

External Article

In-Memory OLTP – Common Workload Patterns and Migration Considerations

  • Article

In-Memory OLTP is a high performance, memory-optimized engine integrated into SQL Server 2014 and designed for modern hardware trends. In-Memory OLTP allows users to move data into memory resident tables while keeping other data in traditional, disk-based table structures. For performance critical workloads, users can also migrate Transact-SQL code to natively compiled stored procedures. This can provide additional performance gains. This paper aims to help readers understand some of the common architectural patterns where In-Memory OLTP has provided significant benefits. The paper also discusses considerations for migrating applications to In-Memory OLTP.

2018-06-22

2,677 reads

External Article

In-Memory OLTP – SQL Server In-Memory OLTP Internals Overview

  • Article

In-Memory OLTP (project “Hekaton”) is a new database engine component, fully integrated into SQL Server. It is optimized for OLTP workloads accessing memory resident data. In-Memory OLTP allows OLTP workloads to achieve significant improvements in performance, and reduction in processing time. Tables can be declared as ‘memory optimized’ to enable In-Memory OLTP’s capabilities. Memory-optimized tables are fully transactional and can be accessed using Transact-SQL. Transact-SQL stored procedures can be compiled to machine code for further performance improvements on memory-optimized tables. The engine is designed for high concurrency and blocking is minimal.

2018-06-21

2,997 reads

External Article

In-Memory OLTP: Row Visibility in SQL Server’s MVCC

  • Article

SQL Server's In-memory OLTP is fast, due to its multi-valued concurrency control (MVCC). MVCC avoids the need for locks by arranging for each user connected to the database to see a snapshot of the rows of the tables at a point in time, No changes made by the user will be seen by other users of the database until the changes have been completed and committed. It is conceptually simple but does the user always see the correct version of a row under all circumstances? Shel Burkow explains.

2016-10-17

3,150 reads

External Article

In-Memory OLTP - Row Structure and Indexes

  • Article

There are several decisions to be made when designing indexes for Memory-optimized tables in In-Memory OLTP, and to make the best choice, it pays to understand something about the nature and usage of memory-optimised indexes. Murilo Miranda continues his series by explaining how such an index is unlike a conventional index.

2016-06-10

4,346 reads

External Article

Implementing SQL Server In-Memory OLTP

  • Article

How do you go about transferring a disk-based workload to the respective memory-optimized design? How do you process memory-optimized tables? How important for performance are natively-compiled Stored Procedures? Artemakis Artemiou comes up with a step-by-step guide to implementing an in-memory OLTP solution .

2016-05-16

3,732 reads

Blogs

Advice I Like: Fear and Imagination

By

Fear is fueled by a lack of imagination. The antidote to fear is not...

Cloud Data Driven User Group 2025 – Slides & Scripts

By

The slidedeck and the SQL scripts for the session Indexing for Dummies can be...

Leading Through Change: Guiding Teams in Times of Uncertainty

By

Change is not a disruption in technology; it is the rhythm. New frameworks appear,...

Read the latest Blogs

Forums

Building AI Governance and Policies- First Steps

By dbakevlar

Comments posted to this topic are about the item Building AI Governance and Policies-...

Simple delete causes table scan on other tables with foreign key

By askcoffman

Why is sql doing a full scan VS seeking on the index? I've included...

Show/Hide number of rows in table

By marty.seed

We have a report that has multiple tables that list the top 15 performers...

Visit the forum

Question of the Day

Checking Identities

The DBCC CHECKIDENT command is used when working with identity values. I have a table with 10 rows in it that looks like this:

TravelLogID CityID  StartDate   EndDate
1           1       2025-01-11  2025-01-16
2           2       2025-01-11  2025-01-16
3           3       2025-01-11  2025-01-16
4           4       2025-01-11  2025-01-16
5           5       2025-01-11  2025-01-16
6           6       2025-01-11  2025-01-16
7           7       2025-01-11  2025-01-16
8           8       2025-01-11  2025-01-16
9           9       2025-01-11  2025-01-16
10          10      2025-01-11  2025-01-16
The docs for DBCC CHECKIDENT say this if I run with only the table parameter: "If the current identity value for a table is less than the maximum identity value stored in the identity column, it is reset using the maximum value in the identity column. " I run this code:
DELETE dbo.TravelLog WHERE TravelLogID >= 9
GO
DBCC CHECKIDENT(TravelLog, RESEED)
GO
INSERT dbo.TravelLog
(
    CityID,
    StartDate,
    EndDate
)
VALUES
(4, '2025-09-14', '2025-09-17')
GO
What is the identity value for the new row inserted by the insert statement above?

See possible answers