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 theSTRING_AGG
function. BULK IMPORT
now supportsCSV
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.