SQL Server 2014 In Memory Tables
For the first time in six years I am excited about the next release of SQL Server. The core engine of SQL Server has had little improvement since SQL Server 2008 for doing OLTP. There have been some TSQL enhancements, and performance tuning; but, most of the energy seems to have been around the OLAP features.
That argument has been put to rest in the release of SQL Server 2014 as demonstrated in the Community Technical Previews (CTP). This version of SQL Server has taken advantage of the greatly reduced cost of memory and CPU capacity by allowing tables to be completely implemented in RAM. Moreover, there is a new kind of stored procedure that can be written such that if interacting with in memory tables only, it is compiled to byte code instead of interpreted like standard TSQL stored procedures.
The tables themselves are not stored as traditional SQL Server tables. Rather, they are compiled into their own executable optimized for their specific definition. In short, you have you own cache native to SQL Server so that you can interact with it just like any other SQL Server table, while gaining many times performance increases of traditional disk bound tables.
The neat part is that you can migrate from traditional tables to Memory Tables because they can be accessed like any other table. Then, when enough of your migration has been completed, you can consider creating in memory stored procedures (which only work with in memory tables) for enhanced performance.
Kalen Delaney has written a very cool white paper on this I would like to refer you for introductory reading. Once again she has done a great job of explanation. You can find it at http://download.microsoft.com/download/8/4/F/84F00BE4-DAFE-4BA4-92AC-5D1080127984/SQL_Server_2014_CTP1_Product_Guide.zip.
What do you think? Will this be a feature that brings SQL Server back into the mainstream? Would you consider upgrading to use Memory Tables? Share your thoughts below, or get into the conversation by sending an email to firstname.lastname@example.org.