The Reflection architectural pattern is an elegant reusable solution to design software applications based on a metamodel that provides a self-representation of the types used in the domain model. This provides significant benefits in terms of adaptability, maintainability, self-awareness, and direct involvement of domain experts in the configuration stage. However, while virtuous in the perspective of objectoriented development, the meta-model adds a level of indirection that may result in poor performance. The complexity is further exacerbated when the object-oriented domain model is mapped to a relational database. We identify four performance anti-patterns that may naturally occur in the design of a meta-modeling architecture, and for each of them we propose a refactoring intervention on the object model and on the database mapping strategy. Experimental results are reported to characterize the gain obtained applying the proposed refactoring techniques to a real case of data management system, in order to provide a roadmap for engineering the performance of meta-modeling architectures.