A genuine question: If you have worked with any fortune 500/1000 companies (Lets pick non software based companies) either directly or if they are your customers, how many of them use Oracle database or SQL Server?
Some of the reasons why this trend WILL continue:
1. Critical software like databases needs support. To the point where there should be someone who can come on premise to fix things.
2. We need to use X because X is used by other big corporations and you never get fired for choosing X.
3. The products (Oracle,MS SQL) are not that bad. (Not sure if there is a better way to put this)
I could be wrong, but I can't think of any other important reason. Can anyone pitch in their experience?
We use Oracle. When starting a new project you are told to use Oracle because that is strategic plan of the company. There are teams of Oracle specialists in house that assist us. There are Sybase, SQL Server apps around but would ideally be migrated.
I think its probably time to move off to a free open source platform like PostGres, esp for non critical apps.
Don't underestimate the power of corporate support. I had a problem with IBM DB2 in a previous job - to diagnose IBM went out and bought an exact copy of our hardware, installed the exact copy of our build and ran automated queries to match our load and recreated the problem. You don't get that support from stackoverflow.
This! Enterprise DB vendors like Oracle will send a team of engineers to your site and work with you until the problem is solved. For IT managers, knowing they can rely on this level of commitment is something they will happily pay for.
I guess the number of millions you need to spend per year to get this service is in the double digits, because it sure ain't in the single digits.
Oracle will let the ticket bounce around Tier 1 asking you basic questions for months until you just give up, just like every other vendor.
Sure, we've had our reps bring in pizza and beer during huge Oracle downtimes, but they never actually SOLVE anything. "Escalation" means "get a manager really mad at the poor support person", not "give it to somebody who knows what they're doing", because those support orgs don't have those people anymore.
OTOH, Oracle knows you're not about to stop your business for a year or two so you can figure out how to migrate a 150TB DB, and figure out how every little piece of code written over the past decade or two will handle the migration to different software.
Almost all companies need databases. Very few companies can or want to hire highly skilled database engineers with years of experience of debugging and performance profiling complex applications.
Right, when I go to major client sites, often their people don't know anything about databases really. It's in some random city, and they hire the people that are local.
You get very wildly different levels of skill, and many times very low levels of skill. Then they hire consultants, because we can make the thing go.
The support point is well made, but IBM isn't doing that for free: you're paying them enough that they're eager and able to do so. I'd wager that EnterpriseDB would do the same if you threw sufficient money at them to fix a PostgreSQL installation.
I'd say MS SQL is better than not that bad. It's an excellent product. One of Microsoft's best. It's generally comparable to PostgreSQL (also an excellent piece of software), and has a few advantages over that which may make it worth the extra cost to a business (Management Studio, Reporting Services and clustering).
The query optimizer takes some of the most insane, convoluted, gargantuan queries and somehow produces relatively good plans. I've messed with a variety of DBMS but I've never encountered one with such a forgiving optimizer. Unfortunately, that is also a downside, since it lets people get away with writing truly maddening T-SQL queries in the first place.
No, as of SQL Server either 6.5 or 7, I can't remember which, it was a ground up re-write. You can do cool stuff if you're Windows-native rather than a port from Unix, e.g. http://stackoverflow.com/a/5284537/447514
I started with SQL Server 7, which was soon after the fork from Sybase.
The current versions still have the same syntax and core features. Performance, replication, features, and tools are all vastly improved. But it still feels like the same product.
4. We are paying big bucks to license industry-specific commercial software that forces Oracle or SQL Server.
5. We already have the licenses available via an EA, so why not keep using the same tech for other projects?
6. We can't find highly qualified offshore labor to support FOSS software/platforms (this isn't really true anymore, but it definitely was 10 years ago).
7. We have various data interchanges with our trading partners and using X makes it easier.
8. We already have all this ingrained experience with X and we're a thin margin company already. We can't afford the switching costs. Another angle for this argument is CapEx (big purchases) vs OpEx (labor), and how corps handle IT budgeting.
Post mergers the mantra is "you say that we will get $n from putting all our systems together and it will cost $n/10 but I say you are a bloody liar and want proof and hostages."
Nope. It's true of every Fortune 1000 who are poor at IT and in the hands of vendors. It's not true where I work, and I am pretty sure it's not true at Microsoft, Google, Facebook...
My company nearly had #2 pushed on us. We've been using Postgres and there is no solid reason for us to switch but a consultant came in an suggested Oracle just because all the big boys use it. That argument has a measurable amount of sway for some reason.
> how many of them use Oracle database or SQL Server?
All of them on our portfolio, which are all non software based companies, rather telecomunications, manufacturing, healthcare, commerce, and so on.
Sometimes there are a few projects using Postgres or MySQL, but usually those are small department experiments that either stay small or are eventually migrated to Oracle/SQL Server.
You missed one critical situation: "You must use X because this required / desired product uses X as a backend". Thus, I pay Oracle every year because some Software Developer used it in a product.
One thing you gotta give Atlassian credit for is supporting multiple SQL databases. They put in the time and effort and that can be a rare thing in enterprise or b2b software.
It somewhat depends on how much code targets DB specific features... if your data store is relatively "dumb", it's easy enough to abstract out ANSI queries with specific abstractions to keep the code very generic. I'd say that mysql is probably the oddest one out in a lot of cases.
The db/table creation is probably the one part that requires the most tweaking.
I have to admit, I always hated MS Enterprise Library, specifically the Data Application Blocks (I think that's what it was called). Mostly because it was a lot of abstraction for zero gain when you only targeted one database. The only time it was worthwhile was when I worked on an application targetting multiple backend databases. Even then it was a lot of work.
5. you can buy/hire accredited expertise as well, which is something BigCo risk-averse management often prefers over competent-but-unaccredited people.
I've never had accredited even come up in a conversation. It's more about paying someone, with deliverables to get something done. Now they must get it done.
Their in house teams are already over worked, under staffed, and usually lower skilled because they are not paying a premium for staff. Could be in some random city without a strong base of people to hire.
That's why consulting works. You pay me a ridiculous amount to fly to your random city every week, where I essentially work as staff, but with clear deliverables on a timeline that must be met.
Then I work ridiculous hours every day while your inhouse staff goes home to see their family.
As to #3, MS-SQL is actually a really nice DB to work with, it's better than most out of the box, the admin functionality is nicely baked, and the replication story is easy enough to understand and configure for a dev-admin role.
No, it doesn't have every feature that pgsql has, but I'd rather work with it mainly because out of the box configuration and replication support is so good. The licensing costs are also pretty damned good compared to EnterpriseDB support contracts, and much less than equivalent for Oracle.
I've always found too many WTF moments with mysql for my liking, and Firebird simply isn't popular enough (though a very cool dbms option). On the flip side, for certain roles, I'd probably reach for RethinkDB (similar to MS-SQL in terms of admin ux, and a really nice db option). If you need pure scale in terms of read/write Cassandra (C*) is probably the best option.
YMMV of course, and on personal projects I'm very frugal, I really like Azure's Storage Tables for some instances. I think that if Azure had a good keygen service, that combined with Azure Storage Tables would be awesome.
Also, the fact that once you have almost complete monopoly in the enterprise market, only a huge paradigm shift will knock you down. Most of the times, the market leaders are able to adapt, and the clients give them a lot of leeway - not the least because of the points which you pointed out.
I've worked with a ton, and they are moving from Oracle/DB2 to SAP HANA, but I work in the SAP ERP space, so that's not indicative of the broader world I don't think. Just the trends here.
Also working in SAP ERP space-many clients moving from Oracle to Hana, or planning to move to it. Of course this is only in the existing ERP space, I do migrations.
Keep in mind that Oracle is not just a database company. They have many server and storage products, CRM, ERM, analytics, hosting, "engineered systems", ticketing, etc. etc.
Some of the reasons why this trend WILL continue:
1. Critical software like databases needs support. To the point where there should be someone who can come on premise to fix things.
2. We need to use X because X is used by other big corporations and you never get fired for choosing X.
3. The products (Oracle,MS SQL) are not that bad. (Not sure if there is a better way to put this)
I could be wrong, but I can't think of any other important reason. Can anyone pitch in their experience?