Gli attribute relationship sono fondamentali per le prestazioni dei cubi. Non sono altro che delle relazionale tra gli attributi di una dimensione. Facciamo un esempio su una classica dimensione cliente. In una dimensione di questo tipo in genere abbiamo il comune la provincia e il codice del cliente. Di base il motore di Analysis services imposta gli attribute relationship dipendenti tutte dalla chiave quindi sia la provincia che il comune dipendono dalla chiave. In questo modo per sapere il comune devo sommare tutti i clienti di quel determinanto comune e successivamente se voglio sapere la provincia devo raggruppare tutti i clienti di quella provincia e quindi tutto dipende dalla chiave senza nessuna dipendenza. Se invece imposto un attribute relationship tra il codice cliente e il comune e tra il comune e la provincia significa che se conosco il comune in automatico conosco la provincia quindi non dipende più dalla chiave e a me basta sapere il comune per ottenere la provincia e questo mi comporta un miglioramento prestazionale in quanto non devo aggregare tutti i clienti del comune e poi tutti i clienti della provincia ma semplicemente aggregare solo i comuni della provincia. Si ha un miglioramento delle prestazioni perchè in questo modo il motore di Analysis Services conosce le relazioni tra i dati e questo migliora le aggregazioni.
Un documento interessante sulle prestazioni OLAP si trova qui.