Denormalization can improve performance by:
Minimizing the need for joins
Reducing the number of foreign keys on tables
Reducing the number of indexes, saving storage space, and reducing data modification time
Precomputing aggregate values, that is, computing them at data modification time rather than at select time
Reducing the number of tables (in some cases)