I've been using these features experimentally, but have, to date, encountered 3 big issues.

  1. Runtime errors have put the database into a suspect state. This has happened twice.
  2. Complicated arithmetic expressions occasionally give different results to normal T-SQL when compiled natively.
  3. SSDT fails to deploy changes to databases which in-memory and natively compiled procedures are affected by the changes.

Although I've achieved some impressive runtime savings by moving parts of the workload to in-memory, there's no way I can consider it ready for production use, while point 1 remains an issue. 2 and 3 are slightly less important, but are in themselves sufficient to block in-memory in my organisation at preent.

  • Have you considered not using native compilation? Speed increase may still be orders of magnitude faster than traditional tables. Exactly which runtime errors did you receive? Db going into suspect state is usually a result of running out of storage. Are you aware of the various ways in which deploying In-Memory alters the database landscape, i.e. no CHECKDB, inability to remove the in-mem filegroup, etc.? – NedOtter Mar 12 at 14:22
  • For items 2. and 3., you should create a UserVoice entry. – NedOtter Mar 12 at 14:24
  • I've discovered that inmemory filegroups can't be dropped, yes. I'm far from expert in this area, as you can tell. I did use plain inmemory tables without native compilation, but was disappointed in the results. Although tempdb io fell off drastically, I didn't see much impreovement in run-time. The current block to performance improvement is tempdb io, and I haven't much scope to do anything about the placement of tempdb. – Ded Medved Mar 12 at 14:28
  • Native compilation will only help if it saves enough clock cycles, vs. interpreted. Not clear on why tempdb would be improved with/without native. – NedOtter Mar 12 at 15:16
  • Curious as to how many concurrent threads you're testing with. – NedOtter Mar 12 at 15:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.