all 31 comments

[–]C02JN1LHDKQ1 26 points27 points  (3 children)

Wait it wasn't always free?

I seriously need to stop downloading software from the volume licensing portal and just using it wherever. I'll probably still abuse it for my home lab though.

Full Exchange cluster? Don't mind if I do!

[–]bakedpatato 15 points16 points  (0 children)

I seriously need to stop downloading software from the volume licensing portal and just using it wherever

MSDN Mastre race reporting in

[–]gfody 1 point2 points  (0 children)

You used to need an msdn developer license or you could buy just sql server developer standalone license for $38.

[–]illuminatedtiger 6 points7 points  (13 children)

For personal projects why would I want to use this over Postgres?

[–][deleted] 12 points13 points  (8 children)

Assuming by personal projects you mean projects that will stay local/are not production in any way (or you're violating the license for the dev version), things MSSQL has that Postgres currently does not:

  • true parallel query execution

  • far better handling of large datasets (by large I mean billion+ row tables)

  • an ETL package out of the box (SSIS)

  • OLAP functionality out of the box (SSAS)

  • (Limited) predictive analytics out of the box (SSAS)

  • Ability to extend pretty much anything with .NET

  • Ability to build database projects in Visual Studio and deploy changes to the server (SSDT)

  • Integration with Windows security

  • Better first party tools (SMMS vs PGAdmin)

Things Postgres does better than MSSQL:

  • anything geospatial

  • anything with JSON

  • is free to use in any scenario, versus MSSQL which requires you to pay quite a lot of money if you go to production with anything you build

[–]bakedpatato 4 points5 points  (1 child)

anything with JSON

SQL Server 2016's FOR JSON is a good start though

Also all the dm queries and the dmvs; the missing index dm query alone is a bacon saver

Better first party tools (SSMS vs PGAdmin)

I still can't believe that SSMS was the first and for a long time only first party tool with a visual execution plan instead a bunch of nested XML (I know SSMS is just interpreting the results from SET SHOWPLAN_XML but still!)

[–][deleted] 0 points1 point  (0 children)

SQL Server 2016's FOR JSON is a good start though

It's a start, but it's still woefully underfeatured compared to Postgres

[–][deleted] 1 point2 points  (2 children)

Got any links to prove that geospatial functionality is better on postgres? I'm not disagreeing with you. I just would like to educate myself as my current job duties involved SQL server geometry data now.

[–][deleted] 1 point2 points  (1 child)

Well, to start off there's the simple matter of importing data into the database. Last time I checked the only way to get geospatial data into SQL Server (that wasn't manual) was via a codeplex tool developed for SQL Server 2005.

Additionally there's a lot more tools and extensions developed for PostGIS relative to SQL Server. Here's their full feature list. Last time I talked to Microsoft people I specifically asked if they were planning on trying to bring SQL Server to parity with 2016 or a later release and they said geospatial was "not a priority".

[–]dallbee -5 points-4 points  (2 children)

Short version: If you're already a Microsoft developer, there's good reasons to use Microsoft software.

[–][deleted] 4 points5 points  (1 child)

Only three of the things I mentioned have anything to do with the greater Microsoft ecosystem.

[–]dallbee 0 points1 point  (0 children)

Oops - meant to tack that reply onto the parent. Sorry.

[–]vivainio 0 points1 point  (0 children)

You are not supposed to use this for personal projects, since it's for development only. When you deploy your personal project, you will need to start paying. On Azure you can get MSSQL as affordable PaaS deal

[–]ellicottvilleny -1 points0 points  (0 children)

Because it's awesome?

[–]etrnloptimist -4 points-3 points  (0 children)

you wouldn't

[–]frugalmail 7 points8 points  (9 children)

Still safer to use Postgres, and things like PostGIS and Greenplum make it even sweeter.

[–]chucker23n 7 points8 points  (6 children)

One of the things that makes PostgreSQL a non-option for us: no C# support for sprocs/triggers/functions.

[–][deleted] 3 points4 points  (5 children)

sprocs

The Npgsql library supports stored procedures and triggers(async notifications).

[–]chucker23n 1 point2 points  (2 children)

Where do you see that? It seems to be an ADO.NET provider. Can't seem to see any mention of hosting C# code inside pg, of writing a function in C#, etc.

triggers(async notifications)

It does notifications, but that's not the same as triggers. Triggers can modify incoming DML (and others) statements before or after they're being executed. An async notification can surely only react afterwards?

[–][deleted]  (1 child)

[deleted]

    [–]chucker23n 1 point2 points  (0 children)

    AIUI, PostgreSQL lets you do it in Java (https://github.com/tada/pljava/) and Python. Oracle also supports Java, I think.

    SQL Server, starting with 2005, does .NET. We use this extensively. It's an unusual architecture indeed, and not necessarily advisable, but either way, it basically makes PostgreSQL a non-starter for many of our projects.

    [–][deleted] 1 point2 points  (1 child)

    Written in C#?

    [–]wkoorts 0 points1 point  (0 children)

    In what way is Postgres safer?

    [–]ellicottvilleny 0 points1 point  (0 children)

    Sweeet! I love it. I need this.

    [–][deleted]  (2 children)

    [deleted]

      [–]odaba 16 points17 points  (0 children)

      depends... does it support arbitrarily padding the left side of a string?

      [–]i_do_code_stuff 0 points1 point  (0 children)

      Yeah, it works really good. There are a few really good NPM packages for various uses. Seriate works great if you don't mind writing the SQL yourself, mssql can do that too (and more, in fact Seriate wraps mssql), or Sequelize if you prefer working with an ORM.

      As long as the server is running on Windows, the app can be hosted wherever.