Last week I was back in Seattle – I love that city! – for the PASS Summit. I’ve only been to two PASS Summit’s and at the first one, I begged Microsoft to hire me as a full-time employee. Imagine my shock when they did!
This time, I am shocked for a different reason. SQL Server 2017.
There is just so much awesome-sauce packed into this release; it is a challenge to know where to begin. A new release cycle is a good beginning. Microsoft has been on a two-year-major-release cycle for a long time now. It stretches back to SQL Server 2008 R2 in 2010. Now Service Packs are going away and Cumulative Updates will be monthly. I suspect we’ll see more aggressive major releases too.
Many people are salivating that SQL Server will run on Linux now. I already stated that I am thrilled to see the best database engine on the planet start eating Oracle’s lunch. But speaking professionally, this doesn’t blow my skirt up – I am a Windows man through and through.
Two of the most exciting advances involve Adaptive Query Processing. Now a compiled execution plan can have multiple paths that change dynamically at runtime. A join could be handled by a nested loop or a hash match depending on the number of rows being processed. Memory grants that are too large or too small can also change between executions. Both of these do not require recompiling the execution plan. This is incredible.
Availability Groups can now be built without a Windows Failover Cluster. This removes the high availability feature but it allows for a hot copy of data. Reporting queries can use the copy and take pressure away from the primary replica.
Columnstore Indexes, Query Store and In-Memory OLTP keep getting better. Smaller existing features and knobs are tweaked as well. SQL Server 2017 has me really excited.
Last, but not least, I was able to meet-up with former Microsoft colleagues. Adam, Rohit, Bob, Ajay and Tejas – it was great to see all of you again.