What is most valuable?
Oracle is the premier relational database platform for enterprise environments. Any organization that purchases enterprise applications will likely have Oracle in place since so many applications require or prefer it.
The most valuable features of Oracle database from my perspective are:
- Read consistency (all queries see a read consistent view of the database so that readers do not block writers and vice versa).
- Data Guard: standby database, with options for maximum performance, availability and protection. I use it in full-synchronous mode to ensure a “hot standby” is available with zero data loss.
- Ability to run non-Windows OS, particularly Linux.
- Ability to monitor and tune; lots of instrumentation built in.
What needs improvement?
Oracle Database is a big, complex technology stack with many options, features, management packs, etc. The base product (Oracle Database Enterprise Edition) is generally rock solid. Some of the oldest, most mature options are also quite reliable (example: Partitioning option). However, most of the other optional products create additional issues. Almost every time I have pursued the implementation of an optional feature I have encountered bugs, limitations or other unexpected behavior.
I would like to see Oracle follow a model like Microsoft’s SQL Server Enterprise Edition, where all products and features are included by default. There are no “options” you can purchase with SQL Server EE. It seems like one of the results of Oracle’s plethora of optional offerings is confusion and quality issues.
For how long have I used the solution?
I've been using Database for over 20 years. There are many additional options and management packs (examples: Partitioning, Tuning Pack, Diagnostics Pack, Lifecycle Management Pack, Active Data Guard, Advanced Compression, Advanced Security, RAC, etc.).
What was my experience with deployment of the solution?
A “simple” deployment of just Oracle Database Enterprise Edition is generally a trouble-free activity, albeit still tedious. The RDBMS kernel is perhaps the most mature on the market (Oracle and IBM’s DB2 were released about the same time).
What do I think about the stability of the solution?
It is one of the most stable solutions on the market.
What do I think about the scalability of the solution?
There are no issues with scaling it.
How are customer service and technical support?
Technical support is very good. I don’t use Oracle Support often to open a new case. Questions and issues I have are most often answered via the support portal. On the rare occasion a new service request is opened, I find the responses timely and helpful.
Which solution did I use previously and why did I switch?
In the past, I have used RAC (and before that OPS, its ancestor). In general, like most shared clustering technologies, the “solution” creates more problems than it solves. RAC’s complexity level requires full-time attention in my opinion. I abandoned the option in favor of VMware and virtual servers, which cover availability from a hardware-loss perspective. In cases where more availability is needed, the Data Guard option is sufficient and MUCH simpler to configure and use.
I started with IBM’s DB2 and used SQL Server (Sybase initially, then Microsoft SQL Server after they split in the 90’s) before Oracle, so have used and evaluated all three of the major RDBMS vendors. I no longer use DB2 because the platform it was on (mainframe) was retired, but I still actively use Microsoft SQL Server.
Both products have their place. I prefer SQL Server for the smaller, departmental applications and Microsoft-related back-office applications due to its ease of deployment and management. I prefer Oracle for most enterprise-scale applications due to its overall strength in this area (performance, scalability, availability) and ability to run on a non-Windows OS (we use Linux exclusively).
How was the initial setup?
Oracle is a complex product, there is no way around that. Compared to Microsoft SQL Server, which can be installed with a few mouse clicks, Oracle takes planning, preparation and significantly more time and expertise.
What about the implementation team?
We have always installed, configured, and managed Oracle with in-house personnel. I would not recommend outsourcing the implementation unless all support for the product were being outsourced. Oracle database requires expertise and constant attention. If an organization intends to support it internally, the personnel responsible for that support need to be the same that install and configure it.
What was our ROI?
Oracle is very expensive. No organization that didn’t “have to” use Oracle would do so. If I were in a small business or an organization that did all of its own applications development, I would avoid Oracle simply due to its cost. Other databases on the market would suffice in those scenarios. Any medium-to-large business will probably not be able to avoid using Oracle database. I don’t think there is an ROI to calculate, but rather a sunk cost in doing business. My advice would be to limit the number of options and features and go with the bare minimum needed to support the needed applications.
What other advice do I have?
The technology behind the base RDBMS is excellent, probably the best on the market, but its cost and complexity are negatives. The personnel who will support need to get formal training and need to be dedicated database administrators. A part-time DBA will not be sufficient for anything more than a trivial deployment.