Tuning at design time is most cost-effective and efficient. Design-time tuning prevents performance issues before code is written, avoids expensive rework later, and establishes proper architecture, indexing strategies, and access patterns from the start.