{"id":1553,"date":"2014-01-30T09:00:00","date_gmt":"2014-01-30T17:00:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/dataplatforminsider\/2014\/01\/30\/in-memory-oltp-index-troubleshooting-part-ii\/"},"modified":"2024-01-22T22:49:03","modified_gmt":"2024-01-23T06:49:03","slug":"in-memory-oltp-index-troubleshooting-part-ii","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/sql-server\/blog\/2014\/01\/30\/in-memory-oltp-index-troubleshooting-part-ii\/","title":{"rendered":"In-Memory OLTP Index Troubleshooting, Part II"},"content":{"rendered":"

With the In-Memory OLTP feature in SQL Server 2014 we introduce two new types of indexes for memory-optimized tables: the memory-optimized NONCLUSTERED indexes, and the memory-optimized HASH indexes.<\/p>\n

Memory-optimized NONCLUSTERED indexes behave similar to traditional NONCLUSTERED indexes from an application point-of-view. The main difference being that memory-optimized indexes are always covering (i.e. all columns are virtually included), while with traditional disk-based NONCLUSTERED indexes you need to specify which column you want to include alongside the index key columns.<\/a><\/p>\n

Memory-optimized HASH indexes behave different from NONCLUSTERED indexes. They are optimized for point-lookup operations, and do not support ordered scans or inequality seek operations. In addition, you need to specify a BUCKET_COUNT when creating the index, and you need to pick the right value in order for the index to perform optimally. In earlier posts we covered the following three index troubleshooting aspects:<\/p>\n