Archive for the ‘Data Warehousing’ Category

Automatic DB_FILE_MULTIBLOCK_READ_COUNT

Thursday, August 14th, 2008

Note: Originally this experiment was from a post I wrote on the Oracle Forum: Database - General. I recommend that you read Jonathan Lewis' summarization of the thread instead of reading all 671 posts (as of today). You will spend much less time and get more out ...

Oracle 11g: Incremental Global Statistics On Partitioned Tables

Wednesday, July 16th, 2008

Previously I blogged about the new and improved DBMS_STATS.AUTO_SAMPLE_SIZE used to calculate NDV in Oracle 11g and now I wanted to touch on another new feature of DBMS_STATS in 11g: Incremental Global Statistics On Partitioned Tables. Before Incremental Global Stats (Two-Pass Method) When DBMS_STATS.GATHER_TABLE_STATS collects statistics on a partitioned table, ...

Using Bitmap Indexes Effectively

Thursday, May 29th, 2008

Recently I was reading this thread, "Trying to make use of bitmap indexes" on the Oracle Forum. Before I had finished a working example, Jonathan Lewis had posted his response which was on par with my thoughts. Since this is a topic I see frequently, I thought ...

Null-Aware Anti-Join

Thursday, May 22nd, 2008

Recently someone showed me a query execution plan with an operation of HASH JOIN ANTI NA. At first, it was thought maybe it was a bug and the operation had a type-o in it, but after further research it was discovered it was a valid operation and a new ...

Top Ways How Not To Scale Your Data Warehouse

Monday, April 28th, 2008

Working in the Real-World Performance Group at Oracle has allowed me to see quite a few customers' data warehouses. Unfortunately some customers find their data warehouse suffering from performance problems, not because there is a platform issue, but often because the features are not used or are not used ...

There Is No Time Like ‘%NOW%’ To Use Dynamic Sampling

Wednesday, March 5th, 2008

I recently came across a query in which the Optimizer was making a poor cardinality estimate, which in turn caused inefficient join type, which in turn caused the query to run excessively long. This post is a reenactment of my troubleshooting. The Suspect SQL The original SQL was quite large ...

The Real-World Performance Group: Oracle OpenWorld 2007 Recap

Monday, November 19th, 2007

Oracle OpenWorld 2007 has come and gone and from the Real-World Performance Group's perspective we'd consider it a successful one. The content of this year's presentations seems to have gone over quite well as shown by the number of hallway comments and emails we received. At least two ...

Oracle 11g: Extended Statistics

Wednesday, October 31st, 2007

In the Real-World Performance Roundtable, Part 2: The Optimizer, Schema Statistics, SQL Tuning at Oracle OpenWorld 2006, I worked an example of how the optimizer can have difficulty estimating the correct cardinality when there is data correlation. (The Zodiac example can be found on pages 46-49 of the presentation.) ...