Oracle DBA Guide to Data Warehousing and Star Schemas
| Far too often, people have the expectation that using expensive hardware is the only way to obtain optimal performance from their data warehouse. They'll spend a lot of money to throw both hardware and software at their performance problems, including items such as:
I've seen more money spent on hardware upgrades to solve performance problems in data warehousing than on any other item. One company with a data warehouse I visited actually switched both its UNIX server and disk array vendors in an attempt to solve its severe performance problems. Imagine their surprise when the problem did not go away with all that new hardware. Then imagine their utter surprise when it was fixable in a couple of hours merely by changing a few INIT.ORA parameters and redoing their table and index statistics collections! In reality, the correct Oracle version, proper use of all its features, and the underlying database design are the most important factors for obtaining optimal performance for any successful data warehouse implementation. Of course, there are certain minimum hardware and software requirements that must be met. For example, I cannot imagine a multi-terabyte data warehouse on a PC. I also cannot envision a successful data warehouse on a mainframe ”if it's using the wrong version of Oracle or fails to utilize Oracle's data warehousing-specific features. The primary database feature requirements for a successful Oracle data warehouse are:
Let's see how the various Oracle versions measure up. Oracle 7.X lacks all the key data warehousing feature requirements. You do not want to be on this version for any kind of serious data warehousing project. You will fail or have to upgrade once your data warehouse exceeds a few hundred GB. For example, a simple data warehouse query that ran over 13 hours under Oracle 7.3 ran in less than 10 minutes under Oracle 8.0, in less than 7 minutes under Oracle 8i, and in less than 5 minutes under Oracle 9i. Except for minor INIT.ORA changes, the only difference was the optimizer's chosen explain plan for the query. Still not convinced? Let's examine the features people think exist in 7.X that make data warehouses a possibility:
Oracle 8.0 is the first Oracle version to meet many of the data warehousing feature requirements. But like new cars , the first model year or two are often worth avoiding. The partitioning is fairly sound, but the bitmap indexes remain problematic . Specifically, it seems that bitmap indexes on tables with over a few hundred million rows still raise a few ORA-600 errors and the occasional wrong result. If you must build a data warehouse under Oracle 8.0, then be advised that it will work best only for very small data warehouses. Both Oracle 8i and 9i support all the data warehousing feature requirements. I've found both Oracle 8.1.7 and 9.0.1 to make data warehousing projects more likely to succeed ”so much so that my advice is that you should only make an attempt at a data warehouse in these versions of Oracle, period. Now, many people might state that their ERP applications are still on Oracle 7.3 and their core business OLTP applications are primarily on Oracle 8.0 ”with a few smaller projects underway on either Oracle 8i or 9i. So what? The data warehouse is a new project and must have those features in the newer releases to succeed. Here's another piece of advice that will sound hard to accept: Successful data warehouses rely so heavily on these new features that their DBAs tend to ride the bleeding edge of Oracle releases. For example, my 7-Eleven data warehouse was considered a huge success by any and all measures. Guess what? We were never more than 60 days out on any major upgrade or patch, ever. Yes, the rest of 7-Eleven was still on 7.3 and working on a phased plan to upgrade the ERP and OLTP systems over the following year to Oracle 8i. But, the data warehouse had already been on Oracle 8i (and its latest release) for over a year. In fact, we were already planning for Oracle 9i. Another way to look at this is to review the market thrusts of both Oracle 8i and 9i. Each version, when released, included new key features primarily for two very hot market niches : the Web and data warehousing. The "Getting to Know Oracle 8i" document (Oracle Part #A68020-01) states that: Oracle8i, the database for Internet computing, changes the way information is managed and accessed to meet the demands of the Internet age, while providing significant new features for traditional online transaction processing (OLTP) and data warehouse applications. It provides advanced tools to manage all types of data in Web sites, but it also delivers the performance, scalability, and availability needed to support very large database (VLDB) and mission-critical applications. In the same document under data warehousing improvements, Oracle states:
Likewise, "Oracle9i Database New Features" [Oracle Part #A90120-02] states: Oracle9i broadens the footprint of the relational database in a data warehouse by becoming a scalable data engine for all operations on data warehousing data, and not just in loading and basic query operations. As such, it is the first true data warehouse platform. Oracle9i provides new server functionality in analytic capabilities, ETL (Extraction, Transformation, Loading), and data mining. Moreover, "Oracle9i Database 9.2 New Features" [Oracle Part #A96531-01] states: Oracle9i release 2 continues to challenge the competition by providing the best platform support for business intelligence in medium to large-scale enterprises . Oracle9i technology focuses especially on the challenges raised by the large volume of data and the need for near real time complex analysis in an Internet-enabled environment. It should be clear that Oracle 8i and 9i are clearly targeted for the world of data warehousing. |