Hacker News new | ask | show | jobs
by frik 3460 days ago
MS SQL Server database is a very old codebase. It dates back to Sybase SQL Server database (1980). Microsoft licensed and forked Sybase SQL in late 1980s and early 1990s and branded t as MS SQL Server. The strategic manoeuvre to get this database and basically got rid of a major vendor is not uncommon for MSFT: https://en.wikipedia.org/wiki/History_of_Microsoft_SQL_Serve... and additional background info: https://en.wikipedia.org/wiki/Ashton-Tate . Little has changed in the comming years, MS SQL kept the old SQL syntax for decades. Some interesting improvements came from the WinFS and XML teams (like full text search and refactoring to allow leaner editions - at one point it was planned to ship SQL Server (desktop ed) with Vista as part of WinFS update). Only recently with SQL Server 2014/2016 the very old and crufty syntax got some improvements. Or things like international date formats - remember it's a codebase from he 1980s, be happy with four non-standard non-ISO formats - things are getting better, but parts of the codebase slept for like 20 years with little love.

On Linux there are Oracle, DB2, Postgres, MySQL, ... and in near future MSSQL too. Depending on the use case, choose wisely. There are many nice features in all of these databases, and several little documented dark edges that you better know about.

1 comments

You're misinformed about the nature of the SQL Server codebase. While it was originally licensed from Sybase, all parts of it have been completely re-worked. I read somewhere that they celebrated "zero Sybase day" or something to that effect in the early 2000s to mark the retirement of the last of the original Sybase code. Some more info here: https://blogs.msdn.microsoft.com/euanga/2006/01/19/sql-mythb...

As for its performance and features, I have run PostgreSQL, MySQL, and SQL Server in production on large workloads and am a big fan of PostgreSQL. That said, I've encountered the fewest sharp edges and disappointments with SQL Server. It is a very respectable RDBMS and it's great that it's now available on Linux.

The main issue I have seen with SQL Server was a constant deadlock (every two weeks or so) over a table with high writes (peak at 800k per sec), which was annoying because the fail-back to the replica affected the DNS entries and meant 5-15min of outage.

But to be fair it was an example of the wrong tool used badly in the wrong situation deployed in a poor environment.

Instead of accusing me, maybe look at yourself. I correctly mentioned that it started as a fork of Sybase, and if you would have spent a minute with my first link, it's clearly mentioned that they refactored the codebase from C to C++ they completed with v2005. Of course there are still many parts in there for various reasons dating back more than 20 years, but it's now maintainable, refactored and internally documented. It's like Internet Explorer which started as a Mosaic fork, and there are still behaviours in IE11 and even in Edge (which started as fork of Trident from IE11) that date back to mid 1990s. Or with Half Life 2 and other Valve's Source-Engine video games - it all started from a Quake 1 engine fork, and you can still spot behaviours and there is still old stuff from ID software in crucial parts, even after like 20 years of refactoring.

And yes, it's good to have a choice. Some software is designed to run in combination with MSSQL. So it's good that they ported it to Linux.