SQL Server 2016 real-time operational analytics

SQL Server 2016 introduces a very cool new feature called real-time operational analytics, which is the ability to run both analytics (OLAP) and OLTP workloads on the same database tables at the same time.  This allows you to eliminate the need for ETL and a data warehouse in some cases (using one system for OLAP and OLTP instead of creating two separate systems).  This will help to reduce complexity, cost, and data latency.

Real-time operational analytics targets the scenario of a single data source such as an enterprise resource planning (ERP) application on which you can run both the operational and the analytics workload.  This does not replace the need for a separate data warehouse when you need to integrate data from multiple sources before running the analytics workload or when you require extreme analytics performance using pre-aggregated data such as cubes.

Real-time operational analytics uses an updatable nonclustered columnstore index (NCCI).  The columnstore index maintains a copy of the data, so the OLTP and OLAP workloads run against separate copies of the data.  This minimizes the performance impact of both workloads running at the same time.  SQL Server automatically maintains index changes so that OLTP changes are always up-to-date for analytics.  This makes it possible and practical to run analytics in real-time on up-to-date data. This works for both disk-based and memory-optimized tables.

To accomplish this, all you need to do is to create an NCCI on one or more tables that are needed for analytics.  SQL Server query optimizer automatically chooses NCCI for analytics queries while your OLTP workload continues to run using the same btree indexes as before.


The analytics query performance with real-time operational analytics will not be as fast as you can get with a dedicated data warehouse but the key benefit is the ability to do analytics in real-time.  Some businesses may choose to do real-time operational analytics while still maintaining a dedicated data warehouse for extreme analytics as well as incorporating data from other sources.

More info:

Get started with Columnstore for real time operational analytics

Real-Time Operational Analytics: DML operations and nonclustered columnstore index (NCCI) in SQL Server 2016

Real-Time Operational Analytics – Overview nonclustered columnstore index (NCCI)

Real-Time Operational Analytics Using In-Memory Technology

SQL Server 2016 Operational Analytics (video)

Real Time Operational Analytics in SQL Server 2016 (video)

Real-time Operational Analytics in SQL Server 2016 – Part 1

About James Serra

James is a big data and data warehousing solution architect at Microsoft. Previously he was an independent consultant working as a Data Warehouse/Business Intelligence architect and developer. He is a prior SQL Server MVP with over 25 years of IT experience.
This entry was posted in SQL Server 2016, SQLServerPedia Syndication. Bookmark the permalink.

2 Responses to SQL Server 2016 real-time operational analytics

  1. Andrew Peterson says:

    Thanks James. In theory, it’s great, and I hope it is a great success. The one question/concern I’d want to know is how OLTP concurrency is affected if we have a very heavy analytic load. Will OLAP queries launch locks which effectively block OLTP. And if not, will our OLAP query results be changing under our feet as the OLTP insert/updates the core data tables in mid query?

  2. Pingback: Microsoft Connect(); announcements | James Serra's Blog