Data Warehousing Collecting statistics For a while we have used DBMS_STATS.GATHER_SCHEMA_STATS with the gather stale option to collect statistics on one of our Oracle 9.2 data warehouses. It was perhaps a little slower than our old approach but it did the job and was also code not written (and
Data Warehousing Accidents waiting to happen A while back I blogged [https://www.rittmanmead.com/blog/2005/11/07/design-matters/] about a data warehouse review we are doing for a customer. At the time I was less than impressed by the consistency of the approach to DW design and the lack of knowledge of how
Data Warehousing Customers do odd things You may have read in a previous Blog that I am a great believer in the use of constraints (not null, primary key and, of course, foreign key) in a data warehouse. In an Oracle data warehouse these constraints inform the query optimiser about relationships between dimension and fact data.
Data Warehousing Pre-built materialized views In a recent Oraclesponge posting [http://oraclesponge.blogspot.com/2005/12/ora-12034-materialized-view-log.html] David Aldridge writes about a way to get around the “ORA-12034: materialized view log younger than last refresh” error. Of course his method relies on you knowing what it is about the
Data Warehousing Modelling from JDeveloper In a few idle moments I downloaded the CWD4ALL [http://www.cwd4all.com/cwd4all4jdeveloper.cfm] extension to JDeveloper – I guess it is the developer in me that wants to give modelling tools a trial and as the vendor web page mentioned words and phrases such as OLAP, multi-dimensional modelling
Data Warehousing We know where you live No, not a threat from a bunch of gangsters, but a reminder about a, perhaps, under used Oracle feature in data warehousing A little while back Mark Rittman reminded me of a piece he wrote on GIS enabling a data warehouse. [http://www.dbazine.com/datawarehouse/dw-articles/rittman6] People
Data Warehousing Materialized view usage For one of my DW customers we adopted a materialized view-based aggregation strategy. Only the base level summaries are exposed to the query tool and the Oracle database uses query rewrite to select the 'best fit' aggregation. This was the customers first use of query rewrite, their
Data Warehousing Validation of dimensions If you have an Oracle data warehouse and are using materialized views for aggregations then Oracle dimension objects would have almost certainly been defined. These objects describe the hierarchical, attribute and join relationships for dimensions and together with database constraints enable the query rewrite mechanism to successfully rewrite queries that
Data Warehousing Partition Pruning works! In a recent post, David Aldridge [http://oraclesponge.blogspot.com/2005/08/execution-plans-for-partition-not.html] discussed an approach for efficiently rebuilding a table so that partition key migrated from one column to another. This is a somewhat specialised operation and one that most people need not consider
Data Warehousing Wrong results One of our users raised a support call with my team – a query returned the wrong results. My guys check it out and capture the explain plan… yes wrong results, and because the lower bound of a BETWEEN prediacte was being omitted. So a TAR is raised with support – the
Data Warehousing Partition joins A few weeks ago (OK, in June; time flys when you are old!) I posted a piece of time series aggregation [https://www.rittmanmead.com/blog/2005/06/21/time-series/] One technique I did not mention (and nobody reminded me of it ;-) ) was “partition joins”. This was a new
Data Warehousing Query rewrite (again) One of our customers uses Oracle materialized views and query rewrite as the key component of their summarisation strategy. The front-end query tool is Business Objects (or rather its web version) The great thing about rewrite is that the BO universe designer only needed to include the base level
Data Warehousing Indexes & Tables & Tablespaces In a recent post David Aldridge [http://oraclesponge.blogspot.com/2005/05/inverting-myths.html] discusses an article on Oracle Myths that Mike Ault posted on searchoracle.com. One myth that got particular mention was the placing of tables and their indexes in separate tablespaces. Now David and I '
Data Warehousing Fresh views on refresh views So, you have got those MV in place and now need to keep them up to date, well there are three options: do-it-yourself, Complete refresh and 'Fast' refresh. To me, fast is not the right name, as under the covers all of the rows affected by
Data Warehousing Materialized views (revised.. but only a little!) In a recent blog reply Oracle Sponge Blog Squarepants [http://oraclesponge.blogspot.com/] (sorry David) mentioned not having much success with query rewrite on Materialized Views. Rashly I said I would blog something. These notes relate specifically to Oracle 9.2 in Data Warehouses. You will find changes with Oracle
Oracle Database Bind Variables Explained If you’ve been developing applications on Oracle for a while, you’ve no doubt come across the concept of ‘Bind Variables’. Bind variables are one of those Oracle concepts that experts such as Tom Kyte and Jonathan Lewis frequently cite as being key to application performance, but it’s