The year 2016 was delightful for the SQL Server community—we put our hands on the
new SQL Server build. This was quite a unique release; for the first time in more than ten
years, the new version did not focus on specific technologies. In SQL Server 2016, you
can find enhancements in all product areas, such as programmability, high availability,
administration, and BI.
I, personally, was quite excited about all the enhancements in In-Memory OLTP.
I really enjoyed this technology in SQL Server 2014; however, it had way too many
limitations. This made it a niche technology and prevented its widespread adoption. In
many cases, the cost of the required system refactoring put the first release of In-Memory
OLTP in the “it’s not worth it” category.
I was incredibly happy that the majority of those limitations were removed in SQL
Server 2016. There are still some, but they are not anywhere near as severe as in the first
release. It is now possible to migrate systems into memory and start using the technology
without significant code and database schema changes.
I would consider this simplicity, however, a double-edged sword. While it can
significantly reduce the time and cost of adopting the technology, it can also open
the door to incorrect decisions and suboptimal implementations. As with any other
technology, In-Memory OLTP has been designed for a specific set of tasks, and it can hurt
the performance of the systems when implemented incorrectly. Neither is it a “set it and
forget it” type of solution; you have to carefully plan for it before implementing it and
maintain it after the deployment.
In-Memory OLTP is a great tool, and it can dramatically improve the performance
of systems. Nevertheless, you need to understand how it works under the hood to get the
most from it. The goal for this book is to provide you with such an understanding. I will
explain the internals of the In-Memory OLTP Engine and its components. I believe that
knowledge is the cornerstone of a successful In-Memory OLTP implementation, and this
book will help you make educated decisions on how and when to use the technology.
If you read my Pro SQL Server Internals book (Apress, 2016), you will notice some
familiar content from there. However, this book is a much deeper dive into In-Memory
OLTP, and you will find plenty of new topics covered. You will also learn how to address
some of In-Memory OLTP’s limitations and how to benefit from it in existing systems
when full in-memory migration is cost-ineffective.