SQL Server on Linux, Love or Calculated Move?
Written by Nikos Vaggalis   
Tuesday, 22 November 2016

Five years ago, who would have imagined Microsoft's U-turn into the arms of Linux, especially after Microsoft's former CEO Steve Ballmer, back in 2001, referred to Linux and Open Source being synonymous with cancer? Last week it joined the Linux Foundation as a Platinum member and SQL Server on Linux is now in public preview.

Well the tide turned and, after open sourcing .NET and rendering it capable of functioning across multiple platforms, Microsoft is steadily making flagship products available on Linux, the start being made with Azure Cloud services.

To consolidate its new position, at the Connect() developer event last week Microsoft annonced that is joining the non-profit Linux Foundation at the highest level (Platinum) and John Gossman, architect on the Microsoft Azure team, will sit on the foundation’s Board of Directors.

sql2016icon

It was in March 2016 that Microsoft first announced that the next version of SQL Server, slated for mid-2017, would be available on Linux in both cloud and on-premises versions. Having been in private preview since then Microsoft has now announced its public preview.

Microsoft's sudden love for Linux undoubtedly sprang from the still ongoing Cloud war. With the dominance of Linux in the server market and in the cloud in particular Microsoft has no choice but to support Linux - an Azure without Linux is unthinkable and unprofitable.  However, despite Microsoft open sourcing its programming related tools, environments, libraries and frameworks such as .NET, Roslyn, ChakraCore, Powershell and most notably Entity Framework, it still seems reluctant to open source its flagship products such as Windows, Office and Visual Studio.

Not with SQL Server though, this is different; but why? Because it's the next logical step in a well planned strategic attempt to conquer the SaaS Cloud, where everything nowadays has shifted, catering for Azure clients' needs in a RDBMS backend. The notion is, why not capture a hefty slice of this market by making SQL Server available to Linux backends, which exclusively power the Cloud, instead of losing clients to other Linux enabled but non-Microsoft solutions like Oracle?

In this attempt, Microsoft furthermore reinforced SQL Server's position with news that all programmability features previously available only to Enterprise editions will be carried unchanged to all other 2016 flavours as well.

sqlserver201

Of those flavours, along with the always free Express edition, the Developer edition, licensed for testing and development purposes only, has been made free too. The rest, come under paid licence schemes which can be found here.

It is evident that Microsoft's main target is business clients that run on Oracle, even offering free licenses to those wanting to migrate.
Still, Oracle aside, what would make others that run on PostgreSQL, Mysql or Actian Ingres, all robust, versatile and well established RDBMS, consider the switch to SQL Server?

It turns out that SQL Server 2016, and especially the newly released Service Pack 1, has a few aces under its sleeve:

Security for starters, is one of the product's strong features, hosting protection of data at rest as well as in motion through Transparent Data Encryption, Always Encrypt and row level security.

Fast querying access and compression through Columnstore, in memory tables and ability to query across structured data and unstructured data in Hadoop through Polybase nodes, are features imperative in this age of Big Data which AI algorithms feed upon, with data being 'king'.

Real time Operational Analytics and integration of R inside T-SQL, data mart performance features such as partitioning, compression, change data capture and database snapshot, Dynamic Data Masking, JSON Support and greater scalability up to 24 cores, are a few others.

These features will be gradually released to the Linux flavours too, which at the moment cover just the core relational components.

That's not the end however as there are several low-level treats for developers:

  • CREATE OR ALTER support that makes it easier to modify and deploy objects like Stored Procedures, Triggers, User–Defined Functions, and Views.
  • A new query option, OPTION(USE HINT(‘<option>’)), is added to alter query optimizer behaviour using 9 supported query level hints.
  • Extended diagnostics in showplan XML
  • New DMF sys.dm_exec_query_statistics_xml which obtains the query's actual execution showplan XML (with actual number of rows) for a query which is still being executed in a given session.
  • Parallel INSERT..SELECT

...and much more.

Least but not last, it is generally accepted that installation of programs under Window was always easy and it looks like it remained that way under Linux too, as installing SQL Server takes less than 60 seconds!

For example, the following workflow contains everything required for setting up SQL Server on Ubuntu:

  •     Enter superuser mode.
        sudo su
  •     Exit superuser mode.
        exit
  •     Run the following commands to install SQL Server:
        sudo apt-get update
        sudo apt-get install -y mssql-server
  •     After the package installation finishes, run the configuration    script and follow the prompts.
        sudo /opt/mssql/bin/sqlservr-setup
  •     Once the configuration is done, verify that the service is running:
        systemctl status mssql-server

Then,install the command-line tools, Microsoft ODBC drivers, and their dependencies, such as sqlcmd: Command-line query utility and bcp: Bulk import-export utility:

  •     Update the sources list and run the installation command:
        sudo apt-get update
        sudo apt-get install mssql-tools

That's it; let's not also forget that 2016 is capable of running insider a Docker container too.
    
Also, Tooling support is something peripheral to a SQL Server's installation. Microsoft in this area too, has released updated versions of its SQL Server tools including SQL Server Management Studio (SSMS), Visual Studio SQL Server Data Tools (SSDT) and SQL Server PowerShell with support for Windows and Linux. Essential is also the release of the new SQL Server extension for Visual Studio Code with which developers can run VS Code for SQL Server under any platform.

So wrapping it up, Microsoft's 'surprising' move to release SQL Server on Linux is certainly bold but an uncertain bet too, expecting a lot back in return. One thing is certain though, the war of the Clouds will only intensify, and so will consumers' dividends.

 

sql loves linux

 

More Information

Announcing SQL Server on Linux public preview, first preview of next release of SQL Server

SQL Server 2016 Service Pack 1 generally available

Download Microsoft SQL Server 2016 Service Pack 1 (SP1)

Related Article

SQL Server On Linux!

SQL Server 2016 Released

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

 

Banner


Copilot Improves Code Quality
27/11/2024

Findings from GitHub show that code authored with Copilot has increased functionality and improved readability, is of better quality, and receives higher approval rates than code authored without it.

 [ ... ]



Learn Python With Dan The Machine Learning Engineer
23/12/2024

aka Dan Kornas who runs a very successful X account about everything related to engineering ML applications. And what is he using in his tutorials? Python, of course.


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Friday, 12 October 2018 )