- [Instructor] Microsoft released SQL Server 2017 in September of 2017. In it's latest release of the SQL Server database platform, SQL Server 2017 included a number of updates to the database platform, including both the engine, the business intelligence tools and probably the biggest news out of SQL Server 2017 was SQL Server's release on Linux. Prior to SQL Server 2017, SQL Server has only ever run on the Windows platform. And for a brief moment in ran on OS2 way back when. However, the Linux introduction is a big chance for Microsoft and brings forth with it a lot of open source ethos into the product.
Additionally, SQL Server 2017 runs on Docker, and alongside that, Microsoft introduced a new tool called SQL Operations Studio that's an open source cross-platform development tool. And throughout this course, you'll see pieces of all of these tools and the new features in SQL Server. Let's get started talking about some of the new features. A couple of the major things that SQL Server introduced at a high level are graph database support. And if you're not familiar with graph databases, they're designed for handling things like relationships and hierarchies.
Even though we think of relational databases as being about relationships and being able to join across relationships. For true relationships, like saying who is a friend of whom, relational databases aren't so good at that or another example of this might be who does the CEO report to an in organizational structure? At that top level, you don't really have those sorts of relationships and graph technology is introduced into SQL Server 2017 to support some of that functionality. And in the forthcoming videos, you'll learn all about it. Additionally, Python is now supported.
So SQL Server 2016 introduced R as an external language. This was part of a new service that was added to the SQL Server platform called SQL Server R Services, starting with SQL Server 2017, that service is now called SQL Server Machine Learning Services and it includes support for Python, so. That's kind of a big shift for Microsoft, and just more evidence of the open source and openness to other solutions. SQL Server 2017 runs on Linux. The OS platforms that it supports include Red Hat, Ubuntu, and SUSE enterprise Linux, so you have a wide variety of choices in terms of Linux that you can run on.
And that SQL Server product on Linux is exactly the same code as the SQL Server product on Windows, so. For example, you can take a backup on a Windows server and restore it to a Linux server and you'll see some demonstrations of that in later videos in the course. You also have support for Docker containers. The Docker container version of SQL Server runs on Ubuntu, and within the Docker ecosystem. It's a very quick and easy way to do development against those tools. As part of that, a lot of command line tools like SQL CMD and a new command line tool that Microsoft has introduced called SQL/CLI, as well as BCP, have all been ported to both Linux and MAC OS.
So you have those tools available on your choice of platforms. There are many other smaller feature additions that are, in some cases, enhancements and string manipulation tools that we've been asking for for a long time are now in SQL Server 2017. And there's some other key new features I'd like to talk about. The biggest one being there's a new servicing model for SQL Server. So a lot of folks traditionally have always waited until Service Pack One to employ a new version of SQL Server. And this was the theory being that Microsoft had issues with bugs that wouldn't get caught until users used the system and in Service Pack One this would be all fixed.
I'd just like to say that this is a little bit different now because the way Microsoft releases code is that it first gets released to the Azure Database service, Azure SQL Database, so that code is effectively in production for months before it goes GA for the on-prem product. So, it's not like it was back in the SQL Server 2005-2008 era where the software was relatively untested or only had internal tests performed on it. Now, the software is extensively tested in a production environment well before it goes GA in the box product.
And additionally, many customers run early release. I know I personally worked on the last two releases of SQL Server with customers that were production early and getting good support and the software is well tested by the time it gets there. So Microsoft is no longer doing Service Packs, which are those big roll-ups. Instead, they're doing monthly accumulative updates for the first 12 months. So each month there will be a new patch. You don't have to apply all of them. For example, if you had applied CU one and you skipped CU two and three, you could jump it back in at CU four.
So after the first year, they'll be bi-monthly releases. Microsoft hasn't said what our future is going to look like for releases of SQL Server, but I do know that they plan on keeping a similar cadence. It might not be every year, but it's going to be probably close to every year and a half to two years would be my assumption. And so get used to new releases all the time, which is cool, 'cause we get new features. Some of the other new features to talk about include adaptive query processing. So this is a new feature, particularly of use with column store indexes that supports some badge mode enhancements like changing memory grants and differed optimization of queries.
We have automatic query tuning. And this is a new enterprise addition and only feature that allows the optimizer to see that you've had a query that suddenly regressed in performance. And if there was an execution plan change it will go ahead and revert back to the last known good plan, which will eliminate your poor performance if you suddenly had a change. It's a pretty cool feature. We also have support for high availability and disaster recovery on Linux, and that's using a service called Pacemaker and Corosync. And those are two open source utilities that kind of provide the similar functionality to Window Server Failover Clustering.
We also have numerous other enhancements to the database engine, both large and small. One of the most interesting ones I think as a DBA is resumable index maintenance. So now when you're performing maintenance on your indexes and you're rebuilding them or defragging them, you can resume that so you can set a specified maintenance window. There are some other minor enhancements, like faster backup speed for incremental backups, lots of string splitting functions that have been added and some other things here or there that we'll cover throughout this course.
- Querying with SQL Graph
- String functions in SQL 2017
- Adaptive query processing
- Docker containers and SQL
- Deploying CLR code with SQL Server on Linux
- Working with SQL Operations Studio
- Using snippets
- Code deployment using GIT