Microsoft SQL Server Index Type

Memory-Optimized Hash Indexes in Microsoft SQL Server: How It Works and When to Use It

Maps key hashes to buckets in memory-optimized tables. Hash indexes suit exact point lookup; memory-optimized nonclustered indexes support ordered access.

What Is a Memory-Optimized Hash Indexes in Microsoft SQL Server?

Maps key hashes to buckets in memory-optimized tables. Hash indexes suit exact point lookup; memory-optimized nonclustered indexes support ordered access.

How the Memory-Optimized Hash Indexes Algorithm Works

Maps key hashes to buckets in memory-optimized tables. Hash indexes suit exact point lookup; memory-optimized nonclustered indexes support ordered access.

Diagram showing the Memory-Optimized Hash Indexes lookup algorithm
Conceptual Memory-Optimized Hash Indexes algorithm. Exact behavior depends on the database version and query plan.

When to Use Memory-Optimized Hash Indexes

In-memory OLTP equality lookups with known distinct-key counts.

How to Create a Microsoft SQL Server Memory-Optimized Hash Indexes

Review data quality, existing structures, feature support, build time, and deployment requirements before creating an index on a production table.

CREATE TABLE dbo.SessionCache (Token varbinary(32) NOT NULL, UserId bigint NOT NULL, INDEX IX_SessionCache_Token HASH (Token) WITH (BUCKET_COUNT = 100000)) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);

Memory-Optimized Hash Indexes Query Example

This example demonstrates the matching query shape. Check the execution plan to confirm that the engine can use the index.

SELECT UserId FROM dbo.SessionCache WHERE Token = @token;

Queries Supported by Memory-Optimized Hash Indexes

In-memory OLTP equality lookups with known distinct-key counts. A similar-looking predicate may not use the same access path; operators, expressions, key order, and data type all matter.

Read Performance, Storage, and Write Costs

No range/order access; collisions and bucket count affect performance; durability options matter. Indexes reduce some search work but require storage and add maintenance to writes.

Memory-Optimized Hash Indexes Limitations and Common Mistakes

Memory-optimized syntax and requirements differ from disk-based rowstore indexes.

Do not assume that an index being present means the optimizer chose it or that the query became selective.

How to Measure and Tune Memory-Optimized Hash Indexes

Estimate distinct keys and inspect empty/average/max chain statistics; size buckets from measurements.

Compare representative plans and timings before and after, including concurrent writes and realistic data volumes.

Memory-Optimized Hash Indexes Questions

Will the database always use this index?

No. The optimizer weighs selectivity, estimated costs, statistics, cache state, and the amount of data returned.

What should I verify before production?

Confirm version support, query compatibility, write overhead, build/rollback procedures, and index behavior during backup and recovery.

Official Microsoft SQL Server Index Documentation

Check Microsoft Learn: SQL Server Indexes for release-specific requirements and supported operators.