Russ.Johnsonville.net My take on databases

14Jan/151

SQL Server vs Postgresql my take.

I came across an interesting post about Microsoft SQL Server vs. Postgresql.  Currently, my company is working to migrate our application towards Postgresql.  I'm excited about this as I find learning something new interesting and fun.  While I love SQL Server, I also acknowledge that its not right for all situations.  However, this article seems a bit too biased towards Postgesql and comes across as petty at times.

1.2 The author seems to have an issue with Microsoft's usage of the standard SELECT INTO syntax.  Seems picky and odd to have an issue with standard syntax.  The author also has an odd love of the $$ instead of single quote to define quoted text.  The author complains that the OUTPUT syntax is tedious because of the need for a variable but then later procliams this is a valuable feature.

1.4 The author seems preoccupied with the wide swath of languages supported for procedures (functions in Postgresql) but this is just an excuse to offload application server work on the valuable database server.  Seems more logical to keep that work out in the application environment where it can be scaled more easily.  Not that anyone actually does that in SQL Server either but it worries me that it would be worse in a Postgres world.  I would welcome feedback on this.

1.9  The article completely ignores the idea that there is plenty of scripting available to automate much of what happend with SQL Server.  The author ignores the job engine that comes with SQL Server and has great configurability.  The author also is condescending that there might be automation via powershell, criticizes people for using GUIs, and also completely ignores Microsoft's movement towards headless (Core) installations.

1.11 The author is critical of SQL Server documentation because it's not funny.  However, there is plenty of example code in the documentation.  Having funny comments in the code is cool and all but is it really a benefit to the database?  Will my queries run faster becuase the code developers are clever with their history of the church and dates?

1.13 All the anecdotes about customer service seem directed to companies other than Microsoft.  The article is critical that "all" people just end up fixing it and the the vendor never does.  I've had many different support experiences with Microsoft and have seen thier support to help with resolution, same goes with Oracle.  Simply putting all my support hope in the usage of mail lists, forums and such seems like a poor decision.  I use all of these resources myself and rarely need to call support but it is a reasonable approach to have a support solution.  These products are far too complex to just rely on community resources.  You want organizations that can pay folks to focus on diffferent aspects of the product and gain expertise... People that can open bugs and place pressure on getting these resolved.  Microsoft is not perfect but I have benefited from their support many times.

1.14 While the author is right that there is a good amount of flexability with dumps, SQL Server's backup facilities are much easier to use.  They can be easily scripted in many ways.  They can be encrypted, compressed and set to differential, full or transaction logs with the single command.  While there are methods to handle logs and such within Postgresql, they are not as easy to implement as SQL Server.

1.16 The author says they do not know long it takes to install SQL Server but they say they were aware of many organizations still on SQL Server 2008 R2.  This isn't because its exceptionally hard to upgrade but more of a function of license costs.  I don't know of the issues with moving up major versions of Postgresql but given my understanding of enterprise database software, no major upgrade is done without significant analysis and testing.  It's a little more complicated than and apt-get update.

Something I also noticed that I can't personally find a solution for is a good tool for profiling.  In SQL Server, I can use SQL Profiler or XEvents to see currently running transactions for issues.  Or, I can take these traces to do replay work.  The first I've not found any good solutions.  And for the former I have not thoroughly investigated.  I welcome those suggestions as well.

Finally the author seems very proud of his/her work but does not take credit or identify themselves.  If they are so proud, why do they hide?  Seems odd.   Comments, criticisms and questions welcomed.

Share Button
  • Riji

    Great blog Russell, unfortunately we have lot of folks with this PG fan mentality, I wish someone like TPC.org just steps in and solve this problem by actually showing metrics like data load/compute/read.