New Features in SQL Server 2017 (Database Engine)

Below is a list of new features added in the SQL Server 2017 database engine.

Support for Linux and Mac

For the first time since SQL Server was introduced back in 1989, SQL Server is available on Linux (Red Hat, SUSE, Ubuntu) and Docker.  This means you can also install SQL Server 2017 on a Mac (by using a Linux image in a Docker container).

The initial release of SQL Server 2017 for Linux doesn’t include the full set of features available in the Windows release, but it’s a good start.  Microsoft has stated that it is working on including more features in future releases.

For now, here’s a list of the main features available in SQL Server 2017 for Linux (as of its initial release).

Adaptive Query Processing

Adaptive Query Processing improves the performance of your queries without you needing to modify the query in any way. SQL Server is able to do this by choosing a better execution plan for the query, and modifying the execution plan in real time. This results in faster running queries.

  • Faster queries
  • Interleaved execution
  • Batch-mode memory grant feedback
  • Batch-mode adaptive joins

Graph data capabilities

SQL Server 2017 introduces graph data capabilities. This means you no longer need to use a specialized graph database, such as Neo4j, Blazegraph, or any of the various graph and multi-model databases. You can now store the data directly in SQL Server itself in graph format using nodes and edges, and you can query it using node/edge query syntax.

  • Store relationships using nodes and edges
  • Analyze interconnected data using node/edge query syntax

Resumable online index rebuild

This allows you to pause and resume your index rebuilds as they’re in progress. This means you can pause/resume an index rebuild without having to completely stop it and start all over again. This enables you to control the impact of the index rebuilds on the performance of your application, and pause/resume as required.

Clusterless read scale with availability groups

Deploy an Always On availability group for read scale with multiple read-only replicas, without having to deploy a cluster (like with Windows Server cluster, or Pacemaker). This is useful if you’re mainly concerned with scale out rather than high availability.

Enhanced performance for natively compiled T-SQL modules

SQL Server 2017 has enhanced the performance for natively compiled T-SQL modules, such as the following:

  • OPENJSON
  • FOR JSON
  • JSON
  • CROSS APPLY operations
  • Computed columns

This means they will run faster (without you needing to change anything).

New string functions

SQL Server 2017 has introduced some new string functions, as well as enhancing some existing ones.

  • TRIM
  • CONCAT_WS
  • TRANSLATE
  • The WITHIN GROUP clause is now supported for the STRING_AGG function.
  • BULK IMPORT now supports CSV format and Azure Blob Storage as file source

More Details on the Microsoft Website

For more details about the new features of SQL Server 2017, see What’s new in SQL Server 2017 and What’s new in Database Engine – SQL Server 2017 on the Microsoft website.