I so badly wish we could change a big Windows business application to use PostgreSQL rather than Microsoft SQL Server just because of the licensing costs.
SQL Server is a fantastic product, but restricted to 128GB RAM and a few CPU cores or you have to start paying so much, that not even our biggest customers can justify it.Migration isn't easy, as this venerable application uses ADO.NET Datasets with TableAdapters and plenty of stored procedures. The syntax is almost compatible though. But not enough unfortunately.
For our next product, we're sure to bet on PostgreSQL instead.
kylecordes|1 year ago
scarab92|1 year ago
chasil|1 year ago
https://en.wikipedia.org/wiki/SQL/PSM
The syntax for this does come largely from Oracle.
"SQL/PSM is derived, seemingly directly, from Oracle's PL/SQL. Oracle developed PL/SQL and released it in 1991, basing the language on the US Department of Defense's Ada programming language."
In any case, I have thousands of lines of PL/SQL written by many people which are currently useless for SQL Server applications.
SQL Server should implement SQL/PSM. The sooner, the better.
For those trying to escape the licensing costs of SQL Server, Babelfish may be an option.
https://babelfishpg.org/
munchler|1 year ago
hodgesrm|1 year ago
Why is this a problem? I've always enjoyed T-SQL. Right from the start it had a "scripty" feel and stored procedures were easy to code with it. We thought about implementing PSM at Sybase in the 1990s but there was little user demand. (Unlike row level locking, the lack of which undid Sybase SAP implementations...) Internally many of the engineers thought PSM was pretty awful to use. I never liked it myself.
belter|1 year ago
"Goodbye Microsoft SQL Server, Hello Babelfish" - https://aws.amazon.com/blogs/aws/goodbye-microsoft-sql-serve...
Or the Opensource project: https://babelfishpg.org/
bdcravens|1 year ago
masfoobar|1 year ago
This ^^^
A small businness I (no longer) work for was using Windows Servers, SQL Server, Classic ASP, .NET and other things. It was expensive!
I tried sooo hard to migrate to get them to realise the savings moving over to Linux and Postgres, and get their DATED software over over afterwards!
Well, it was Linux and MySQL/MariaDB but I have slowly grown fond of Postres over the last couple of years.
I will always remember (and find funny) when we purchased a server a third-party no longer wanted to support for us anymore (linux+php) and my boss said "they only pay £300 a year for that server" -- yep.
cheema33|1 year ago
accra4rx|1 year ago
pmarreck|1 year ago
I too was impressed with SQL Server last time I used it (big note: SQL Server is one of the few commercial DB's that does real nested transactions; PG does not), but I get it.
dspillett|1 year ago
More or less. The default ROLLBACK behaviour is to roll back the whole nest. You have to use SAVE TRANSACTION instead of BEGIN TRANSACTION and specify the name in ROLLBACK. If doing this in a procedure that may or may not be part of a nested transaction (an explicit transaction wasn't started before it was called) you have to test to see if you need to BEGIN or SAVE¹ and what to do if a rollback is needed (you likely don't want to ROLLBACK everything if you used SAVE, but have no option if you used BEGIN). Not exactly intuitive. And saved transactions can cause excessive lock escalation, impacting concurrent performance.
SQL Server is generally a damned fine product overall, both generally and compared to a lot of other things emitted by Microsoft, but it isn't even close to perfect in some areas.
----
[1] ref: https://learn.microsoft.com/en-us/sql/t-sql/language-element...
werdnapk|1 year ago
BrentOzar|1 year ago
Not sure where this myth keeps coming from, but no, it does not:
https://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a...
cpursley|1 year ago