SQL Performance, Part 2: Query Analysis and Access Path Formulation