I'm excited about this release because it means that developers of frameworks and libraries that target SQL Server will no longer need to have Windows available to test their software. As a specific example, the SQL server backend for Django could now (soon) be bundled with Django directly and enjoy the same level of support that other backends do. It'll also mean that users will be free to run Django on Linux, and use the drivers to communicate with a windows or Linux based SQL server.
I should note that Django isn't planning to add more backends to the core project, and has actually discussed moving some into separate packages. But that doesn't mean a backend couldn't be developed by the Organisation.
Microsoft had SQL Server Native Client (ODBC) driver for Linux available for a few years now. So your could develop/test on Linux with SQL Server running in a VM. This is how we have been doing it in ODB (C++ ORM) for years.
Of course, don't expect either of them to be open source. Which means an open source ORM backend that depends on them can't be in an official Debian/Ubuntu/RH repository.
I too am excited for this, along with the rest of their movement towards adding support for Linux. I know I'll be a die hard C# guy forever (though I still can't help but enjoy learning other tech), but I want a non-windows option. I'd add that though it's nice to have SQL Server on Linux, I'm still waiting for them to make DocumentDB an on-premise installable package. For many people heavily invested in SQL, it is the only tool in their toolbox. Having a Microsoft supported NoSQL option would only help people invested in the Microsoft stack of products. I hate to be cliche, but when you know only SQL, every data problem looks like a SQL nail to be hit with your SQL hammer.
You can connect to SQL Server from Windows, Linux and Mac using Python, Node.js, PHP, Java and C#. This includes integration with frameworks like Django, Laravel, Entity Frameworks, Hibernate etc.
It's not about getting rid of Microsoft: it's about getting rid of Oracle. Their licensing costs even for a very large shop may start out cheap (think 90% discounts) but will creep up over time. And when you inevitably manage to get a combination of oracle-dependent data, queries, processes, etc entrenched the prices start to climb and the even more expensive options come out. Oh you need more performance? Go horizontal with RAC. You need to go faster but can't reengineer things? Exadata will fix you right up.
My default RDBMS of choice has always been PostgreSQL and I'm not sure why I should choose SQL Server, even now that it's available on a non-Windows platform. I understand that there are some fancy DB things that it can do and it's optimizer can be better in some circumstances, however I like to use ORMs and don't generally interact directly with the DB. Besides, those things pale in comparison (in my mind) to the hassle in dealing with Microsoft and licensing. Using PostgreSQL is simple and doesn't involve breaking out a spreadsheet to determine how much we need to pay for it. I've seen Microsoft licensing and the companies I've been at have had to have entire departments to figure it out. No thanks.
Now, the one thing I've heard from everyone is that the SQL Server tooling is beyond belief, and I believe it. If there is one weakness in the open source RDBMS world it's tooling. With such as large and obvious gap how is it that no one has filled it yet? Will no one pay for tooling? Are there tools available but the quality is not there? Seems like a good candidate for someone to fill a niche and possible make a successful business.
Well, with paid db management tools like Navicat, and open source BI tools like say, Pentaho (both just examples) you can get roughly on parity with SQL Server's tooling for something like Postgres.
Microsoft has just been polishing the integrated set of tools with SQL Server for a long time, especially with GUI tools that make the job of administering SQL Server more accessible for a different class of user (e.g. the ones who don't compile their own kernels and spend all day in a shell).
> I understand that there are some fancy DB things that it can do and it's optimizer can be better in some circumstances
That's a pretty big deal. (Also not sure what the ORM has to do with it... Unless it's just the fact that ORMs dumb down the queries that are possible)
> I understand that there are some fancy DB things that it can do
I haven't seen this anywhere else in this thread, so here's The Register saying that the Linux version would be lacking some features compared to the Windows version, though it doesn't mention what those might be.
It doesn't surprise me; I can imagine there's quite a bit of stuff in the server software, as a whole, that is dependent on native OS integration. I'll be interesting to see a matchup once it starts getting reviewed.
SQL Server, Sharepoint, Active Directory and Office are all platforms in their own right. It does not make sense to constrain them by requiring the windows platform to run.
Balmer was jumping across the stage yelling Developers, Developers, Developers! Now someone in Redmond is executing and pushing the applications and tools platforms. It will be interesting to see where this leaves Windows in the medium term.
Well, even though he was completely lambasted and lampooned by "Developers Developers Developers", he wasn't wrong.
We see the 85%/15% split in programming and developing as well. When something is just too good to pass up, a lot of us switch over and start working on the next hotness. Sometimes, those things switch and become the embedded tech you have to learn to get in there. Arduino is one such thing. As is C, and Linux. For DB's, it used to be MySQL, and now PostgreSQL, and large heapings of good/bad for MongoDB and Redis.
Where MS lost for a long time, was the insane amount of bad will towards protocol obfuscation, protocol "extensions" that break IETF protocols, and of course the monopolist behaviors that they were found guilty for.
The problem is they ran away people who'd develop for their platform, and make crazy awesome things. Can't say I blame them. I'm one who ran, and really haven't looked back. And recently, we had a "party" at work, because I was able to wipe the last 2 windows boxes we had. To Linux.
Active directory is not a separate product like the others it is very much a core part of Windows Server. Unless you think AAA parts of an OS are a separate product from the OS, AD is very much tied to Windows.
You could turn AD into just another identity management platform, but you would pretty much lose everything that makes AD awesome. AD is impressive because it is so integral and closely tied to Windows. It begins to lose its lustre when you integrate other platforms because when you lose that close coupling, there's nothing but a distributed user authentication store.
I'm curious what results we will see when people start benchmarking it running on the same hardware but Windows in one case and Linux in the other.
Also, what would happen (if anything) if the Linux results crushed the Windows ones? Would that be embarrassing to Microsoft? And to take the thought to the next level of paranoia, let's say Microsoft already ran those benchmarks in-house and found the Linux version vastly faster. To avoid embarrassment, would they slow it down to be more in line with the Windows version?
I've always thought that Microsoft's operating systems were the Albatross around their neck. Their apps and systems are OK. Having those available on a superior OS, like Linux would be good for the world, and MS.
Buying canonical would probably be the quickest way.
> We have made it easier than ever to get started with SQL Server. You’ll find native Linux installations with familiar RPM and APT packages for Red Hat Enterprise Linux and Ubuntu Linux, and packages for SUSE Linux Enterprise Server will be coming soon as well.
So easy for some ;) Not to not applaud their efforts though.
SQL Server is meant primarily for enterprises, what they're doing makes sense. IMO if they want to be super nice* they could provide a zip package which other distros can turn into their specific packages.
* Open Sourcing it is probably unrealistic at this point.
Microsoft is adapting at a good pace, going beyond the windows ecosystem. Last time I used SQL server, it didn't support sharding across machines, so only supported vertical scaling (unless you buy the appliance or add sharding logic at the application layer). I think that's something they need to fix, to start using SQL server for large scale applications.
Now if they can just fix windows, I might start using that too. Maybe WindowsX? I do enjoy using VSCode on Mac!
I've worked extensively with both SQL Server and Postgres and money being no object, there are valid reasons to investigate both. SQL Server's query planner is better, Postgres has only just got limited parallelism for some sequential scans, and still treats CTEs as second class citizens. Postgres in version 10 is going to get proper partitioning, which SQL Server has had for years. There are vast numbers of feature differences, down to individual GIS functions one platform has over the other.
If you have the money MSSQL is a better all-purpose RDBMS. The tooling is in a completely different league and there are fewer surprises with regards to performance (like PG's slow counts, paging, etc.). I very much hope PG will close the gap though.
These companies all use MySQL as either their primary database layer, or at least as an essential storage system for a major property or system: Facebook, Google (doubleclick, cloudsql), Twitter, LinkedIn, DropBox, Alibaba, YouTube, WordPress.com, Wikipedia, GitHub, Yahoo, Yelp, Pinterest, Etsy, Tumblr, Flickr, Uber, Box, Booking.com, Instagram (migrating afaik), Lyft (migrating), Amazon (mysql backs DynamoDB)
re: "these days" meaning would these companies still choose MySQL if founded today? Impossible to say for certain, but some of them migrated to MySQL recently. Most have the resources to change databases if there was a compelling reason to do so.
Postgres has many appealing qualities, but so does MySQL (as well as SQL Server). Use the right tool for the task.
Maybe you don't have a choice. There's a ton of business applications that only support SQL Server. I worked for a company the used SAP Business One for their ERP system, it only supports SQL Server. Our infrastructure was mostly Linux, but for SAP B1, there's not a choice, you need SQL Server.
Old school client server database applications is still very much alive.
I worked in a reasonably sized organization that was heavily invested in MS products. If I had used SQL Server I would have had access to DBA's and secondary apps we were already licensing for ETL, reporting, etc... I chose postgres because at the time, the Linux drivers for SQL Server were junk. The message from our ops folks was basically, "Knock yourself out but you're totally on your own."
Postgresql is awesome, best open-source RDBMS by far, but MSSQL is more advanced. This is expected since hundreds of developers are being paid by Microsoft to work full-time on it.
I love Postgres and have been using it for a long time. However if you need good support for, for example, self-updating efficient materialized views, then Postgres won't really do (yet).
I would suspect that most instances of SQL Server support off-the-shelf applications that require SQL Server rather than custom built applications.
Of course, a lot of these come from Microsoft - but there are a lot of 3rd party applications that support SQL Server. There are also a lot of advantages of standardizing on a single database platform within an organization.
I suspect this will become a problem for Oracle/Microsoft over time, most startups seem content with the open source solutions. I doubt this will change as they mature, this leaves Oracle and Microsoft trying to screw more money out of a dwindling and aging set of customers.
I'd probably pick PostgreSQL over either of the other two today for any case where my constraint was that I had to have the application run on Linux. Otherwise, I'm going Azure SQL Database or SQL Server if on-prem (as in, non-cloud) is needed. This will change soon with the OP about SQL Server on Linux.
SQL Server Management Studio is an incredible tool and beats the pants off of equivalent free tools like MySQL Workbench and pgAdmin. (SSMS is now freely available without an MSDN subscription or SQL Server license.) Yes, it requires Windows, but compared to the other tools on Windows it is second to none.
Azure SQL Database has been nothing but a good experience to work with. You automatically get 3 highly-available replicas of your database for no extra cost, built-in transparent data encryption, query auditing support, threat detection alerts, near 100% compatibility with SQL Server, and no need to keep the underlying OS or software up to date and secure. All of this for $30/mo (Standard S1 we've found to be adequate for most small businesses with line-of-business type apps.) Depending on the needs of the application, Azure SQL Database can either be a good replacement for an existing SQL Server instance, or a stepping stone towards a larger SQL Server installation. We're seeing many small businesses power down their on-prem/colo SQL Server installs and moving to Azure SQL Database to save on TCO.
SQL Server Express Edition is a free edition that supports up to 10GB databases, so it is perfect for your local development environment (assuming the size constraint allows that). In 2016 SP1, they even added all of the Standard and Enterprise edition features to Express edition like memory-optimized tables and columnstore indexes. With integrated Windows authentication, it is incredibly easy to have your team use a single connection string and for a new dev just install SQL Express and go.
SQL Server Database Projects in Visual Studio are by far the biggest reason for me to prefer Azure SQL Database or SQL Server. This is the most elegant way of storing your database schema in source control that I've ever seen. You define the schema as just CREATE scripts, and when you build you generate a DACPAC with the entire schema defined as if you're creating it from scratch. But upon deployment it determines what objects need to be created, altered, or (if you want) removed to make the target database schema match the normative schema in the DACPAC. So it builds its own migration script based on the schema of the target database, and it won't allow any operations that cause data loss by default. This is super handy in a team environment because you don't need to worry about writing migrations by hand, you just define the schema "as it should be" and no matter what version of the database your team members had on their machine it will get caught up. Also dealing with merge conflicts is easier, because you're just doing a line-by-line merge of the e.g. CREATE TABLE statement rather than having to worry about which order your migrations run in. If anyone knows of something equivalent for MySQL or PostgreSQL I'd love to know!
Will be very interesting to see how this affects SAP installations. AFAIK the only database options were SQL Server and Oracle. Granted it's been >5 years since I had to deal with this mess but this could be amazing news for some people on SAP who were pretty much forced to run Windows just for the database.
I assume it shares the same insane licensing model. I genuinely do not understand how people put up with that (outside of enterprises that normally overpay for everything).
It is simple, imagine you were the FD of a SME who uses a certain tech, but it is incidental to the business. You have two proposals put to you, and one of them is various strung together FOSS solutions and the other MICROSOFT. You take a personal risk by approving the project. Do you have time/ability to dig down into the risks/payoff for the other solution. £20k on a db from a brand you trust, as part of a £250k project. Would you quibble over it? That is why people pay the money.
[+] [-] digi_owl|9 years ago|reply
> If Microsoft ever does applications for Linux it means I've won.
https://en.wikiquote.org/wiki/Linus_Torvalds
[+] [-] AsyncAwait|9 years ago|reply
[1] - https://code.visualstudio.com
[2] - https://github.com/PowerShell/PowerShell
[3] - https://www.microsoft.com/net/core#linuxfedora
[4] - https://blogs.msdn.microsoft.com/wsl/
[+] [-] Scuds|9 years ago|reply
[+] [-] jsmeaton|9 years ago|reply
I should note that Django isn't planning to add more backends to the core project, and has actually discussed moving some into separate packages. But that doesn't mean a backend couldn't be developed by the Organisation.
[+] [-] boris|9 years ago|reply
Of course, don't expect either of them to be open source. Which means an open source ORM backend that depends on them can't be in an official Debian/Ubuntu/RH repository.
[+] [-] wmccullough|9 years ago|reply
[+] [-] meetbhagdev|9 years ago|reply
You can connect to SQL Server from Windows, Linux and Mac using Python, Node.js, PHP, Java and C#. This includes integration with frameworks like Django, Laravel, Entity Frameworks, Hibernate etc.
[+] [-] nateguchi|9 years ago|reply
wow
[+] [-] technofiend|9 years ago|reply
[+] [-] wictory|9 years ago|reply
[+] [-] Corrado|9 years ago|reply
Now, the one thing I've heard from everyone is that the SQL Server tooling is beyond belief, and I believe it. If there is one weakness in the open source RDBMS world it's tooling. With such as large and obvious gap how is it that no one has filled it yet? Will no one pay for tooling? Are there tools available but the quality is not there? Seems like a good candidate for someone to fill a niche and possible make a successful business.
[+] [-] sixdimensional|9 years ago|reply
Microsoft has just been polishing the integrated set of tools with SQL Server for a long time, especially with GUI tools that make the job of administering SQL Server more accessible for a different class of user (e.g. the ones who don't compile their own kernels and spend all day in a shell).
[+] [-] paulddraper|9 years ago|reply
That's a pretty big deal. (Also not sure what the ORM has to do with it... Unless it's just the fact that ORMs dumb down the queries that are possible)
[+] [-] TheRealDunkirk|9 years ago|reply
I haven't seen this anywhere else in this thread, so here's The Register saying that the Linux version would be lacking some features compared to the Windows version, though it doesn't mention what those might be.
http://www.theregister.co.uk/2016/03/11/sql_server_linux_201...
It doesn't surprise me; I can imagine there's quite a bit of stuff in the server software, as a whole, that is dependent on native OS integration. I'll be interesting to see a matchup once it starts getting reviewed.
[+] [-] heisenbit|9 years ago|reply
Balmer was jumping across the stage yelling Developers, Developers, Developers! Now someone in Redmond is executing and pushing the applications and tools platforms. It will be interesting to see where this leaves Windows in the medium term.
[+] [-] kefka|9 years ago|reply
We see the 85%/15% split in programming and developing as well. When something is just too good to pass up, a lot of us switch over and start working on the next hotness. Sometimes, those things switch and become the embedded tech you have to learn to get in there. Arduino is one such thing. As is C, and Linux. For DB's, it used to be MySQL, and now PostgreSQL, and large heapings of good/bad for MongoDB and Redis.
Where MS lost for a long time, was the insane amount of bad will towards protocol obfuscation, protocol "extensions" that break IETF protocols, and of course the monopolist behaviors that they were found guilty for.
The problem is they ran away people who'd develop for their platform, and make crazy awesome things. Can't say I blame them. I'm one who ran, and really haven't looked back. And recently, we had a "party" at work, because I was able to wipe the last 2 windows boxes we had. To Linux.
[+] [-] mhurron|9 years ago|reply
Active directory is not a separate product like the others it is very much a core part of Windows Server. Unless you think AAA parts of an OS are a separate product from the OS, AD is very much tied to Windows.
You could turn AD into just another identity management platform, but you would pretty much lose everything that makes AD awesome. AD is impressive because it is so integral and closely tied to Windows. It begins to lose its lustre when you integrate other platforms because when you lose that close coupling, there's nothing but a distributed user authentication store.
[+] [-] sandebert|9 years ago|reply
Also, what would happen (if anything) if the Linux results crushed the Windows ones? Would that be embarrassing to Microsoft? And to take the thought to the next level of paranoia, let's say Microsoft already ran those benchmarks in-house and found the Linux version vastly faster. To avoid embarrassment, would they slow it down to be more in line with the Windows version?
[+] [-] walterbell|9 years ago|reply
Sybase 11.0.3.3 for Linux was made free for production use somewhere around 2002. It is still useful for some applications, if you can find the binaries, http://froebe.net/blog/2013/03/10/howto-installing-and-runni...
[+] [-] ageofwant|9 years ago|reply
I've always thought that Microsoft's operating systems were the Albatross around their neck. Their apps and systems are OK. Having those available on a superior OS, like Linux would be good for the world, and MS.
Buying canonical would probably be the quickest way.
[+] [-] Qantourisc|9 years ago|reply
So easy for some ;) Not to not applaud their efforts though.
[+] [-] oblio|9 years ago|reply
* Open Sourcing it is probably unrealistic at this point.
[+] [-] gaurav-gupta|9 years ago|reply
Now if they can just fix windows, I might start using that too. Maybe WindowsX? I do enjoy using VSCode on Mac!
[+] [-] myf01d|9 years ago|reply
[+] [-] thom|9 years ago|reply
[+] [-] ronack|9 years ago|reply
[+] [-] evanelias|9 years ago|reply
re: "these days" meaning would these companies still choose MySQL if founded today? Impossible to say for certain, but some of them migrated to MySQL recently. Most have the resources to change databases if there was a compelling reason to do so.
Postgres has many appealing qualities, but so does MySQL (as well as SQL Server). Use the right tool for the task.
[+] [-] mrweasel|9 years ago|reply
Old school client server database applications is still very much alive.
[+] [-] baq|9 years ago|reply
[+] [-] JunkDNA|9 years ago|reply
[+] [-] agacera|9 years ago|reply
For OLAP use cases it is years ahead of Postgres.
[+] [-] onlydnaq|9 years ago|reply
I love Postgres and have been using it for a long time. However if you need good support for, for example, self-updating efficient materialized views, then Postgres won't really do (yet).
[+] [-] arethuza|9 years ago|reply
Of course, a lot of these come from Microsoft - but there are a lot of 3rd party applications that support SQL Server. There are also a lot of advantages of standardizing on a single database platform within an organization.
[+] [-] tonyedgecombe|9 years ago|reply
[+] [-] kbumsik|9 years ago|reply
[+] [-] nitinreddy88|9 years ago|reply
One reason is, Paid support and excellent integration with existing Microsoft products. The features are totally worthy to use SQL server.
[+] [-] usloth_wandows|9 years ago|reply
[+] [-] paulirwin|9 years ago|reply
I'd probably pick PostgreSQL over either of the other two today for any case where my constraint was that I had to have the application run on Linux. Otherwise, I'm going Azure SQL Database or SQL Server if on-prem (as in, non-cloud) is needed. This will change soon with the OP about SQL Server on Linux.
SQL Server Management Studio is an incredible tool and beats the pants off of equivalent free tools like MySQL Workbench and pgAdmin. (SSMS is now freely available without an MSDN subscription or SQL Server license.) Yes, it requires Windows, but compared to the other tools on Windows it is second to none.
Azure SQL Database has been nothing but a good experience to work with. You automatically get 3 highly-available replicas of your database for no extra cost, built-in transparent data encryption, query auditing support, threat detection alerts, near 100% compatibility with SQL Server, and no need to keep the underlying OS or software up to date and secure. All of this for $30/mo (Standard S1 we've found to be adequate for most small businesses with line-of-business type apps.) Depending on the needs of the application, Azure SQL Database can either be a good replacement for an existing SQL Server instance, or a stepping stone towards a larger SQL Server installation. We're seeing many small businesses power down their on-prem/colo SQL Server installs and moving to Azure SQL Database to save on TCO.
SQL Server Express Edition is a free edition that supports up to 10GB databases, so it is perfect for your local development environment (assuming the size constraint allows that). In 2016 SP1, they even added all of the Standard and Enterprise edition features to Express edition like memory-optimized tables and columnstore indexes. With integrated Windows authentication, it is incredibly easy to have your team use a single connection string and for a new dev just install SQL Express and go.
SQL Server Database Projects in Visual Studio are by far the biggest reason for me to prefer Azure SQL Database or SQL Server. This is the most elegant way of storing your database schema in source control that I've ever seen. You define the schema as just CREATE scripts, and when you build you generate a DACPAC with the entire schema defined as if you're creating it from scratch. But upon deployment it determines what objects need to be created, altered, or (if you want) removed to make the target database schema match the normative schema in the DACPAC. So it builds its own migration script based on the schema of the target database, and it won't allow any operations that cause data loss by default. This is super handy in a team environment because you don't need to worry about writing migrations by hand, you just define the schema "as it should be" and no matter what version of the database your team members had on their machine it will get caught up. Also dealing with merge conflicts is easier, because you're just doing a line-by-line merge of the e.g. CREATE TABLE statement rather than having to worry about which order your migrations run in. If anyone knows of something equivalent for MySQL or PostgreSQL I'd love to know!
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] jchannon|9 years ago|reply
[+] [-] mmgutz|9 years ago|reply
[+] [-] roryisok|9 years ago|reply
[+] [-] kriro|9 years ago|reply
[+] [-] mcs_|9 years ago|reply
Thank Microsoft... good one
[+] [-] mattkrea|9 years ago|reply
[+] [-] tyingq|9 years ago|reply
SQL 2016 Standard 2-pack of Core Licenses $3,717 ($1,859 per core)
Not cheap, but perhaps attractive compared to Oracle.
[+] [-] jimnotgym|9 years ago|reply
[+] [-] floopidydoopidy|9 years ago|reply