I'm not at all surprised. Medium sized businesses used to use Oracle due to perceived reliability and features, however there have been a number of things that are making them reconsider:
* A number have been shaken down by Oracle sales reps who threaten a license review and potentially stiff penalties and litigation if they find anything at all out of order - unless they purchase software they don't need.
* difficulty in getting support - Oracle are notorious for not responding in a timely fashion to tickets, and a willingness by the CSO to completely ignore serious security flaws.
I experienced this myself four years ago when my boss put me in charge of a clear Unicode bug in their OLEDB driver - the bug had been open for 2 years and by the time I left a year later Oracle had almost wilfully ignored everything we wrote, even ignoring a program we built in .NET that showed the problem. Throughout the ticket we dealt with something like 4 support people, each of whom didn't understand Unicode and who needed a basic backgrounder on how UTF8 works.
* license costs are ridiculous, and frankly not worth it.
* it can often be hard to find people who can troubleshoot performance issues. Even highly skilled people face a black box when they work on improving query performance as the CBO is largely a black box that can change from version to version. Without a clear explanation of how the CBO actually makes decisions it's often a bit of a crapshoot when tuning queries.
* Oracle DBAs are very expensive, compared to how much you can pay an equivalent skilled DBA who knows Postgres or even SQL Server.
* there are few features most medium sized businesses need that can't be done in Postgres.
Woah. So essentially Oracle's "sales" reps behave like the mob. How have they gotten away with this for so long?
Do you know of any others?
Note that sensible Oracle consultancies are openly offering similar support for Postgres. This can occasionally be useful ... assuming they can realistically supply that level of support e.g. when a PG fills its disk or various other disasters happen. (We've been testing our PG clusters at work with various test disasters and making sure we can recover from any of them with as little faff as possible.)
This has not been my experience.
I have experience parent's woes and more. That includes having Oracle staff in house doing in-person knowledge transfer. Experience says that Oracle will not provide a qualified person if we call for one as well. Sourcing from their own consultant pool is also a black box crap-shoot.
We also involved Dell and their support team to provide feedback and second opinion on Oracle CBO, query optimization and overall needed knowledge to use their Toad for Oracle performance tools. They literally stopped short of saying: yeah, you need people smarter than us for that.
I still think Oracle is a great product, but it's only fit for large organizations with bottomless budgets. I think we spent something north of $100K on Oracle's E-learning and that was probably the cheapest item on the list.
We have several people in house (I know of 6) who can troubleshoot performance issues. For them the CBO is not a black box and they can explain what is happening and why.
I know of a local consulting company that has several very good people that you can "order". Said consulting company also offers very good CBO courses/workshops.
I doubt your in house experts fully understand the Oracle CBO. They may claim they do, but unless they have access to material that isn't public they can't possibly be able to diagnose the CBO fully.
You realise there are over a thousand hidden database parameters, right?
> I doubt your in house experts fully understand the Oracle CBO. They may claim they do, but unless they have access to material that isn't public they can't possibly be able to diagnose the CBO fully.
Maybe. Let me put it this way, so far they could explain all CBO decisions where we had performance issues.
PostgreSQL doesn't have the network of value added resellers and internal sales reps that Oracle has amassed. These are people that engineers dismiss but management often see them as a support tier for their customers of a product. That tier builds trust.
If you try to introduce your product/service to an enterprise B2B market with an established market leader and intend to sell or distribute entirely off of value alone you will lose nearly every time. In smaller companies that can't dream of licensing Oracle the risk is worth the reward, it's not like they have a choice and they then grow an in house knowledge to be that support tier if they scale.
Consider that I f something breaks at a big enterprise it's likely to cost millions of dollars in lost payroll while it gets fixed. Big companies would rather mitigate the risk and buy a supported and proven product. They trust it.
One facet to trust is your personal career: as the manager who signs off on this, you can trust that if anything goes wrong Oracle will aggressively defend your decision — people, including high-level managers, will show up on site to defend the decision and promise to fix whatever went wrong, consultant reports by the pound, etc. If you go with Postgres, you're going to have to do more of that yourself and if the amounts were at all significant, you can be very confident that Oracle will have people telling your C-level management that this never would have happened if you'd gone with them. Even going with Microsoft can be seen as “risky” for that reason.
1. Internet Explorer 8 is released. Our users start to get the automatic update and our very expensive Oracle reporting app breaks.
2. I contact Oracle's support and get a very snotty customer “service” person:
“We don't beta-test Microsoft's software for them. We'll start testing IE8 when it ships.”
“That was last week. How's the testing going?”
“We'll get back to you”
“Please do. I deployed a patch but am worried there are more subtle problems.”
3. <days pass with no contact>
4. “Hi, this <senior support manager>. Can you give us a copy of the patch you mentioned so we can distribute it to other customers who are dead in the water?”
5. <time passes>
6. “You'll need to upgrade to $NEXT_MAJOR_VERSION, which was just released and is a paid upgrade”
The executive level where the decision to buy was actually made:
“Hey, heard you guys had a problem or two but the support group worked it out”
“Yeah, the usual. Are we still on for our normal tee time?”
The problem was that the executives didn't have any experience somewhere dramatically better functioning and both the outside sales team and their staff who had invested much of their professional development in that stack had an incentive to downplay problems and come up with reasons why any particular outside comparison wasn't valid. No large organization works exactly the same as its peers and so you can always come up with some argument for why they can do something but it won't work for you. The only thing which seems to disrupt that is either a failure too big to be excused or the emergence of an alternative which is either dramatically cheaper or does something new such as support mobile/BYOD or a cloud service which removes the need to have the staffing and equipment in-house for a major app.
Nobody is out there on the Postgres side doing the same, so that decision maker doesn't even know who they are. Then when someone suggests pgsql for something, the first question is, "Where do we get support?" Everyone then looks around the room and starts searching the web for support.
There is no question if and who will support you with Oracle (which is why I will never choose them).
Just believing a well-known company which presents their product as "the solution to all your problems" does not seem very clever to me.
I know that when I don't have the knowledge in a particular area, say payment processing, and I can only think of a vendor or two off the top of my head, it becomes someone's assignment to bring me the pros and cons of the major vendors and maybe a couple of the upstarts- including getting on the phone with them if necessary. The ultimate decision will be a combination of that person's recommendation vs. any business problems that may prevent a relationship (say some certification or SLA forced on us by the client).
There is also the psychology aspect of a well known name. They must be a well known giant because they are good, provide the best, or provide something the others can't- right? Now, WE know that mostly Oracle doesn't do these things. There are a few cases where they have kind of engineered a way to be the only one who does the thing (then got someone to make it a requirement in their project). We know they're generally abusive, and awful to work with. A not very technical decision maker just knows Oracle is a big name. Just like SAP. I'm not saying it's an excuse, it just is.
It will cost a lot in time and dollars to actually get what you want and you will not want to litigate Oracle.
The other common reason is if you'll be deploying some existing application on top of your RDBMS and it either only supports Oracle (ie: it uses Oracle's proprietary language somehow or simply not ported to Postgres) or you already have lots of Oracle DBAs. Most big organisations are very brownfield so the technology choice is path dependent.
At one previous employer, we had to deal with several hours of downtime daily because they kept not getting the $$$$ budget needed for Oracle's online backup product and so it went down for how ever long it took to write data out to a poorly configured tape backup. Trying to use MySQL or Postgres happened by necessity but was heavily FUDed over what might happen and all of the (internal) users had just been trained that the systems weren't available before 7:30 AM.
Once they get the shoulder in the door, they push to expand the database horizontally in the organization.
Microsoft has a similar strategy with CRM and SQL Server. SQL Server drives their corporate success.
Postgres vs. Oracle, etc is a pointless argument because it's answering the wrong question.
The most important difference is that SQL Server has everything that Oracle has to offer at a much, much cheaper price.
I agree that comparison with postgres and mysql are pointless. They offer a tiny fraction of what enteprise products have. If you need it, you will know.
One thing that comes to mind is Linux (or Solaris, HP-UX, or other nixes) support. SQL Server is essentially Windows-only.
Oracle stores the old version of the row in a rollback segment.
According to the following article, "only changed values are written to undo whereas PostgreSQL/SQL Server creates a complete new tuple for modified row. This avoids bloat in the main heap segment." 
Both Oracle and SQL Server has some way to restrict the growth of version information whereas PostgreSQL/PPAS doesn't have any way.
(Don't speak to me about SQL Server. Of all the brain dead ideas, implementing storage in the TempDB for snapshot isolation!)
It is a similar dynamic with SAP another much detested system by everyone who is not in IT or works as a consultant. It is amazing to me, pretty much everyone who actually works in an SAP (or Oracle) system detests it but cannot get IT to provide an alternative.
I would assume Oracle has a very strong presences in Russia in those terms. Unlike Postgres until Postgres Pro.
More details (in Russian): http://obartunov.livejournal.com/181484.html
Postgres and others are working on solutions for this, and I find more shops look for alternative solutions instead of paying for Oracle licenses.
No one was ever fired for choosing Oracle.
(We also have some MySQL - from old in-house apps and from third-party things like Drupal, Magento, WordPress and MediaWiki - and some MongoDB, which we're pushing to get converted to Postgres because it does key-value comparably fast and means one less dependency, though that's nothing like as urgent as getting off Oracle was.)
Chris is referring to this: http://rationalwiki.blogspot.co.uk/2016/03/mysql-database-pr... which I eventually resolved by carefully hand-exporting the corrupt table to CSV and reimporting it. I think we lost one revision from 2008. I HATE MYSQL SO MUCH.
(unfortunately, MediaWiki is one of those things where MySQL or preferably MariaDB is the only realistic option - other DBs are hypothetically supported, but in practice not well enough unless you want to do the heavy lifting yourself.)
We have been building/rebuilding our applications on top of PostgreSQL but there are still a lot of departments that buy the "Oracle is better / We need paid support" propaganda. Props to Russia for their forward thinking views.
Now you get the privilege to pay licensing for all the cores in your environment where you can migrate the VM to.
With such a policy, what could possibly go wrong?
It's poorly written in terms of Russian grammar,
suggests that rather than being a "rogue" effort by an overseas affiliate (which Oracle will no doubt try to spin it as, once this turd floats to the to the top of the English-speaking business press, as it hopefully will), it's more likely that someone directly with Oracle provided a few "talking points" in English, and these were hastily translated into Russian by someone local (i.e. using GT or some other tool, and carelessly edited).
Vision: Screw customers over and get their money.
Execution: Very probable, customers don't run fast enough.
I have this feeling that Microsoft is going to be announcing some really big things in the data management area in the next 12 months.
I've posted a big version of the Magic Quadrant here:
Mongo, EnterpriseDB and Redisnare in the upper right as well.
It also seems like the chart is stuffed with a ton of databases you wouldn't even consider, just to make it look like they are more ahead than is really the case. It's not that the databases in the lower-left aren't any good, they just fulfill very different roles.
He mentioned in that class that, this NSSDCA center is in the process of moving away from Oracle to PostgreSQL. The transfer process is going on for over 2 years.
Even the book we are following changed their focus from Oracle to MySQL from recent edition.
This is what we are reading : Database Systems: Design, Implementation, & Management 11th Edition
And the third thing that can happen, which happened with a friend of mine, is that a really bad solution is implemented at a very large ongoing cost, the executive who made the decision leaves (which is what often happens with incompetent executives) and their replacement walks in, sees the disaster, doesn't care about saving his predecessors stupidity and decides to remove the bad solution, and makes sure that the vendor who caused the headache goes to the bottom of the pile when it considerating them during tenders for new business.
You know what they say: it costs less to keep existing business (especially in a saturated marketplace where you are the market leader) than it costs to drum up new business.
Believe me, this is a very short to medium term sales solution. When it goes wrong it's not easy to recover from. When competitors start taking market share from Oracle they'll find it very hard to recover their market share without immense upheaval and systemic change throughout their business. Microsoft learned this the hard way. Oracle's time will come! Can't come soon enough.
Meanwhile PostgresPro (extended PostgreSQL version, distributed by Oleg Bartunov's company "Postgres Professional") officially included to the Russian Software Registry: https://reestr.minsvyaz.ru/reestr/65273/ [ru]
~~ Nikolay Samokhvalov
I mean, I'm sure there are but, when coupled with a skill set that helps you counter "license reviews" that could be quite a business.
PostgreS "ships" a Java 8/JDBC 4.2 driver, Oracle does not.
First they ignore you, then they laugh at you, then they fight you, then you win.
My first reaction to the news is that it is a clear evidence that PostgreSQL is now fully on par with Oracle in terms of everything average IT companies need to be concerned with. If I were Oracle and my product is still ahead of PostgreSQL at least in some areas, I wouldn't be so upset.