There's no single Postgres dev, it's been community-driven from the start and the various postgres companies mostly provide support. So there's nobody to pay $1bn to really.
If you look at the contributors page[0], out of 6 "core devs" there are 5 different companies, with EnterpriseDB being "overrepresented" at 2 core from the company, plus a pair of "major contributors" out of a truckload.
And these people are probably Postgres devs first and foremost. Not Tom Lane or Josh Berkus, but even if Oracle bought out EnterpriseDB they might just cash in and work on Postgres from an other company.
[1]http://www.informationweek.co.uk/software/enterprise-applica...
- sql server
and
- reliable
don't really belong in the same sentence.
If your friends don't experience any problems, I would venture to guess they must be running small databases, or databases where the workload is 90% reads 10% writes.
http://msdn.microsoft.com/en-us/library/ms173763.aspx
In addition to setting a database level default, you can even have it behave differently per connection. Snapshot isolation will never lock, period.
SQL Server is actually quite capable, and has the fantastic tooling that cheaper alternatives like PostgreSQL lack.
It's not what I would have picked (I come from a Linux and Oracle background), but I've been very impressed.
The DBs are often very write intensive on the master, with as much reading as possible done on slave databases, with tables heavily normalised to try and reduce the disk performance hit.
Most of the extremes of the setup are there for legacy performance reasons - The newer systems using SQL Server 2008 or 2012 and SSD drives generally don't need it, and we're moving towards a less normalised setup.
Also, since the entire discussion started by me questioning the reliability of sql server, can you say how many days your database server stays up between reboots?
Oracle's query interpreter, for example, is extremely anal, you have to commit everything and Oracle is likely to reject your queries if they are slightly off, which helps catch errors.
SQL Server follows more of a "Do What I Mean" approach, even going as far as to perform implicit type conversions for you, which is fine until it guesses wrong. Then, instead of rejecting your query, it screws up your data.
And don't tell me I can configure it to behave differently, it should work correctly out-of-the-box.