Designing for performance
Many of the recommendations for designing cubes we've given so far in this book have been given on the basis that they will improve query performance, and in fact the performance of a query is intimately linked to the design of the cube it's running against. For example, dimension design, especially optimising attribute relationships, can have a significant effect on the performance of all queries—at least as much as any of the optimisations described in this chapter. As a result, we recommend that if you've got a poorly performing query the first thing you should do is review the design of your cube (along with the relevant chapters of this book) to see if there is anything you could do differently. There may well be some kind of trade-off needed between usability, manageability, time-to-develop, overall "elegance" of the design and query performance, but since query performance is usually the most important consideration for your users then it will take precedence...