SQL Server 2016 Developer Edition in Windows Containers

We are excited to announce the public availability of SQL Server 2016 SP1 Developer Edition in Windows Containers! The image is now available on Docker Hub and the build scripts are hosted on our GitHub repository. This image can be used in both Windows Server Containers as well as Hyper-V Containers. SQL Server 2016 Developer… Read more

SQL Server R Services – Why we built it

This is the first post in a series of blog posts about SQL Server R Services. We want to take you behind the scenes and explain why we have built this feature and deep dive into how it works. Future posts will include details about the architecture, highlighting advanced use cases with code examples to… Read more

SQL Server 2016 Express Edition in Windows containers

We are excited to announce the public availability of SQL Server 2016 Express Edition in Windows Containers! The image is now available on Docker Hub and the build scripts are hosted on our SQL Server Samples GitHub repository. This image can be used in both Windows Server Containers as well as Hyper-V Containers. SQL Server… Read more

In-Memory OLTP Videos: What it is and When/How to use it

In-Memory OLTP is the premier technology for optimizing the performance of transaction processing in SQL Server. Last week at Microsoft Ignite 2016 we presented two session about the In-Memory OLTP technology in SQL Server and Azure SQL Database. For those of you who did not attend the conference or did not make it to the… Read more

SQL Server 2016 – It Just Runs Faster: Always On Availability Groups Turbocharged

When we released Always On Availability Groups in SQL Server 2012 as a new and powerful way to achieve high availability, hardware environments included NUMA machines with low-end multi-core processors and SATA and SAN drives for storage (some SSDs). Performance issues surrounding Availability Groups typically were related to disk I/O or network speeds. As we… Read more

Increased Memory Size for In-Memory OLTP in SQL Server 2016

We are happy to announce that SQL Server 2016 removes the size limitation on user data in memory-optimized tables. You can grow your memory-optimized tables as large as you like as long as you have enough available memory. This means that with Windows Server 2016 you can leverage all 24TB (Terabytes) of available memory in… Read more

Query Optimizer Additions in SQL Server 2016

In SQL Server 2016 we have introduced a number of new Query Optimizer improvements. This article summarizes some them and explains you can leverage the benefits of the new enhancements. Expect deep dive follow up articles for some of the enhancements. Here is the short list: Compatibility Level Guarantees Query Optimizer Improvements under Trace Flag… Read more

Increased nonclustered index key size with SQL Server 2016

SQL Server 2016 and Azure SQL Database have increased the maximum size for index keys with nonclustered indexes. The new maximum key size for nonclustered indexes is 1700 bytes. The maximum key size for clustered indexes remains 900 bytes. Consider, for example, the following script which creates a table with a 1700 byte variable-length character column,… Read more

What’s new for In-Memory OLTP in SQL Server 2016 since CTP3

SQL Server 2016 is making a lot of enhancements to In-Memory OLTP to make it easier to use and perform even better. In a previous post I listed all the new features that had been included in SQL Server 2016 up to and including CTP3. But we have added a lot of new features since then, including… Read more

Improving temp table and table variable performance using memory optimization

In-Memory OLTP is a technology introduced in SQL Server 2014 that can provide phenomenal (up to 30-fold) performance improvements for transactional workloads, and SQL Server 2016 improves the performance even further. However, adopting this technology in an existing app comes at a cost, and you need to have enough available memory for the core transactional… Read more