FIX: In-Memory OLTP database takes a long time to recover in SQL Server 2017

Applies to: SQL Server 2017 EnterpriseSQL Server 2017 Enterprise CoreSQL Server 2017 Developer

Symptoms


Assume that you have SQL Server 2017 on Linux or Windows. If the database has a large number of memory optimized tables or memory optimized table types then the database recovery may take long time due to waits during compilation of the memory optimized tables. If you do a wait analysis from sys.dm_os_wait_stats, you may notice PREMPTIVE_OS_FINDFILE or PREEMPTIVE_OS_CREATEDIRECTORY wait types during recovery.

Resolution


This issue is fixed in the following cumulative update for SQL Server:

       Cumulative Update 5 for SQL Server 2017

Note: To speed up the recovery, you have to enable Trace flag (TF) 9944.

Status


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References


Learn about the terminology that Microsoft uses to describe software updates.