There are already many good resources on the internet explaining how to re-order dimensions, or in other words, how to "optimize" a cube. However, nowhere is it explained just exactly what is being optimized and why. This article addresses this gap and explains that there are multiple possible axis which can potentially be optimized and by extension that there is no "one best dimension order" as the optimal order is situational and depends on whether we should optimize for memory consumption or performance. As 64-bit computing has evolved memory has become cheaper, to the point of being a commodity. So is optimizing for memory consumption still relevant, or should we focus on performance? And if performance then is query performance or write-back performance more important?