Each question attempt (at least in MC questions) stores in the database (mdl_question_attempts) full text of the question summary, right answer and response summary.
This seems fairly expensive as question/answer text may be long, and these bits of question attempt info could be constructed on demand from the question definition and attempt data (which seems to be unnecessarily repeated over and over again in mdl_question_attempt_step_data for each attempt of the same question instance).
Is there a good reason I'm missing for this design?