Details
Description
We have upgraded our production 1.8.4+ site on a test install to "1.9 + (Build: 20080312) (2007101509)". We have over 250,000 questions and over 6000 quizzes. Some other details:
Solaris 10 and Coolstack 1.1
We have separate web and db servers.
Courses: 13299
Users: 24834
Role assignments: 154804
Teachers: 1402
Questions: 264090
Deleting questions has a roughly linear behavior, taking 7 seconds per question when selecting delete from the question bank (/question/edit.php). It appears to be limited completely on the DB side as there is no change in CPU load on the web server but significant change in CPU load on the DB.
The performance has improved over 1.8. The confirmation step "Are you absolutely sure you want to delete the following questions?", is <<1 sec, while it takes a significant amount of time on 1.8. The CPU load on the DB is less.
Can the queries when checking wether questions are used in a quiz be improved in 1.9 or is it a case of beef-up/tune the DB server? What information can we provide to help?
Attachments
Issue Links
| This issue is duplicated by: | ||||
| MDL-16484 | Adding one more index to mdl_question_state table would improve performance on big production sites |
|
|
|
Just to be clear, is it showing the confirm page that is slow, or actually doing the delete after confirming?
And I would encourage you to trace through the code, and work out what it is doing, but my guess would be that most of the work is in quiz_question_list_instances in /mod/quiz/lib.php.
However, that should be really fast, since it is a single query, and all the necessary indices should exist. However, it would be nice to confirm that.
Of course, it is silly that this function returns a list of quizzes, and we later just check whether it is empty or not.
Anyway, it would be great to investigate this.