In-Memory OLTP - what's new in SQL2016 CTP3
We have been hard at work to add features to In-Memory OLTP to make it easier to build apps and to adopt In-Memory OLTP in existing apps, as well as to increase overall performance and scaling. Below is the list of In-Memory OLTP enhancements that we have released in SQL2016 thus far, up to and including CTP3. There is more to come!
Let us know what you think!
Transact-SQL Improvements:
Disjunction (OR, NOT)
UNION and UNION ALL
SELECT DISTINCT
OUTER JOIN
Subqueries in SELECT statements (EXISTS, IN, scalar subqueries)
Nested execution (EXECUTE) of natively compiled modules
Natively compiled inline table-valued functions (TVFs)
EXECUTE AS CALLER support - the EXECUTE AS clause is no longer required for native modules
Built-in security functions and increased support for built-in math functions
- Support with memory-optimized tables for:
FOREIGN KEY constraints between memory-optimized tables
CHECK constraints
UNIQUE constraints
Triggers (AFTER) for INSERT/UPDATE/DELETE operations. Triggers on memory-optimized tables are natively compiled, and thus use WITH NATIVE_COMPILATION.
- ALTER and sp_recompile support for natively compiled procedures, functions, and triggers
- ALTER TABLE support for schema and index changes
The new ALTER TABLE ... ADD/DROP/ALTER INDEX syntax is introduced for index changes on memory-optimized tables
- Full support for collations and code pages
(var)char columns can use any code page supported by SQL Server
Character columns in index keys can use any SQL Server collation
Expressions in natively compiled modules as well as constraints on memory-optimized tables can use any SQL Server collation
Performance and Scaling improvements:
- Increased data size: a database can now have up to 2 terabytes of user data in memory-optimized tables with SCHEMA_AND_DATA. [Edit 7/1/2016: the there is no longer a limit on user data size with memory-optimized tables see this blog for details]
- Scalability improvements in the persistence layer
- Parallel plan support for Accessing Memory-Optimized Tables Using Interpreted Transact-SQL
- Parallel scan support for HASH indexes
Enhancements in SQL Server Management Studio:
- The transaction analysis report no longer requires the configuration of data collectors or management data warehouse. The report can now run directly on a production database. Simply right-click on the database and select Reports -> Standard Reports -> Transaction Performance Analysis Report.
- PowerShell Cmdlet for Migration Evaluation for evaluating the migration fitness of multiple objects in a SQL Server database.
- Generate migration checklists by right-clicking on a database, and selecting Tasks -> Generate In-Memory OLTP migration checklists
Cross-feature support:
- Multiple Active Result Sets (MARS) connections can now access memory-optimized tables and natively compiled stored procedures
- Transparent Data Encryption support. If a database is configured for ENCRYPTION, files in the MEMORY_OPTIMIZED_DATA filegroup are now also encrypted.
- Support for using temporal system-versioning with In-Memory OLTP. For more information, see System-Versioned Temporal Tables with Memory-Optimized Tables
- Query store support for natively compiled code from In-Memory OLTP workloads. For more information, see Using the Query Store with In-Memory OLTP.
- Row-Level Security in Memory-Optimized Tables
For more information, see In-Memory OLTP (In-Memory Optimization).