Modeling Dimensions with History Tracked, Generic Attributes
Sometimes, you need to model a database in such a way that you can dynamically extend the model without altering any tables. Perhaps the attributes changes faster than you can add new columns or the...
View ArticleHow Vertical Partitioning and Deep Joins Kill Parallelism
Query plans with deep joins trees are often the result of high levels of normalisation in the data model. There are large advantages to normalising data as it minimizes the amount of data that must be...
View ArticleBig/Big Table Joins
With the popularity of my last blog entry on Dangerous Joins, I felt inspired to write a bit more about the join strategies. Thanks for participating and reading, there seems to be a large appetite for...
View ArticleWhat is the Best Sort Order for a Column Store?
As hinted at in my post about how column stores work, the compression you achieve will depend on how many repetitions (or “runs”) exist in the data for the sort order that is used when the index is...
View ArticleMyth Busting Query Optimisation
It’s been some time since I posted here, but recent customer events prompted me to write up some notes I have been taking the past years. The problem I would like to talk to you about is one that is...
View ArticleSELECT INTO – Moving Data From A to B
When building a data warehouse, you often find yourself needing to move data that is the result of a query into a new table. In SQL Server, there are two way to do this efficiently: SELECT INTO INSERT...
View ArticleTable Pattern: Rotating Log / Ring Buffer
Most database systems need some form of log table to keep track of events, for example for auditing purposes. To avoid the log growing forever, it is often a good idea to regularly rotate old log...
View ArticleTPC-H: Schema and Indexes
The TPC-H benchmark is often used a method for customers to evaluate data warehouse products to make purchasing decisions. Because it is such a crucial benchmark, it is important to understand the...
View ArticleTPC-H: Data and Query Generation
The TPC council ships two utilities that can be used to generate the data and query for the TPC-H schema: DBGEN and QGEN. The utilities are written in C to make them portable between platforms....
View ArticleMy Courses–Last Chance!
I am currently working on a large project that will be taking up all my time. Because of this, I will no longer find the time to run my courses. If you want to attend my data warehousing or tuning...
View Article
More Pages to Explore .....