SQL 2019 is on track to become one of the most awesome releases – the product touches so many realms of the data platform, it’s truly mind boggling.
Since I have such a keen interest in Hekaton/In-Memory OLTP, when the CTPs are released for a new version of SQL Server, I look forward to any potential announcements about that feature.
So far, there’s been only one publicly announced enhancement for In-Memory OLTP in SQL 2019: system tables in TempDB will be “Hekatonized”. This will forever solve the issue of system table contention in TempDB, which is a fantastic use of Hekaton. I’m told it will be “opt in”, so you can use this enhancement if you want to, but you can also back out of it, which would require a restart of the SQL Server service.
But there’s at least one other enhancement that’s not been announced, although the details of its implementation are not yet known.
When you start to research the Hekaton feature, most are shocked to learn that CHECKDB does not verify anything about durable In-Memory tables: it silently ignores them.
That appears to have changed in SQL 2019, although either the informational message about what it does is misleading, or behind the scenes it does something different.
This is the output for DBCC CHECKDB of a memory-optimized database in SQL 2017:
Object ID 949578421 (object ‘inmem_table’): The operation is not
supported with memory optimized tables. This object has been skipped and will not be processed.
(the emphasis was added by me)
This is the output for DBCC CHECKDB of a memory-optimized database in SQL 2019:
DBCC results for ‘inmem_table’.
There are 101 rows in 3 pages for object “inmem_table”.
Why do I say the message is misleading?
Because durable data for memory-optimized tables is not stored in pages, but instead in a streaming fashion in files known as checkpoint file pairs (or data and delta files). Also, while it’s true that there are 101 rows in this table, the engine pre-creates a number of data and delta files, and it would make DBAs sleep a lot better at night, if all of those files were verified as being corruption free.
We’ll just have to stay tuned to the future CTPs and RTM of SQL 2019 to see how all of this shakes out.
Pingback: What’s New With In-Memory OLTP In SQL Server 2019 – Curated SQL
Hi Ned… thanks for this very succinct news about updates to Hekaton in 2019!
I’m just curious about your saying that Hekaton tables are silently ignored by DBCC in earlier versions… by mentioning them and saying that they will be skipped, that isn’t exactly silent, no?
Thanks again!
Kalen
Hi Kalen —
Thanks very much for your comment.
You are of course correct that because there is output about durable memory-optimized tables CHECKDB is not “silent”, but I would imagine that many DBAs never verify that output, because they only check for errors. So it’s a gotcha that DBAs need to be aware of.
Thanks,
Ned
Definitely a gotcha! But if DBAs are not in the habit of verifying output, this might be the least of their worries. 😉