When deciding whether to denormalize, you need to analyze the data access requirements of the applications in your environment and their actual performance characteristics.
Often, good indexing and other solutions solve many performance problems rather than denormalizing.
Some of the issues to examine when considering denormalization include:
What are the critical transactions, and what is the expected response time?
How often are the transactions executed?
What tables or columns do the critical transactions use? How many rows do they access each time?
What is the mix of transaction types: select, insert, update, and delete?
What is the usual sort order?
What are the concurrency expectations?
How big are the most frequently accessed tables?
Do any processes compute summaries?
Where is the data physically located?