複数の問題を含む小テストをつくり、教師権限でプレビューしようとすると、非常に時間がかかります。数分に及ぶこともあり、その間は他のユーザーにまで影響します。なんとかしたいので、ご相談申し上げます。
環境は、Moodle 2.1.1+(Build: 20110907)、PHP 5.3.6、Apache 2.2.17、MySQL 5.1.58、Fedora 14です。ときどき、極めてリスポンスが悪くなるので、slow queryのログをとりつつ、原因を絞り込んでいったところ、どうやら既存の小テストをプレビューすると顕著に遅くなることが分かりました。以下のログはそのときのものです。そもそも、プレビューするのに、どうしてDELETEが必要なのかも分からないのですが、それは置いとくとして、プレビューに、合計で200秒以上かかっています。google頼みで、あちこち探ってみますと、INではなくEXISTSを使えという記述に遭遇します。そこで、お尋ねします。
1.バージョン2.0.2(このバージョンから症状が現れたことに気がつきました)以上をお使いのところでは、どのような状況なのでしょうか。何も問題ないのでしょうか。あるいは何らかの対処をされているのでしょうか。
2.DELETE FROM以下のスクリプトを実行させているファイルの所在を特定できません。予備機で試行錯誤すれば、なんとかなるかなと淡い期待を抱いていますので、お分かりの方、教えてください。
# Time: 110916 14:29:05
# Query_time: 164.318654 Lock_time: 0.012147 Rows_sent: 0 Rows_examined: 45585447
SET timestamp=1316150945;
DELETE FROM mdl_question_attempt_step_data WHERE attemptstepid IN (
SELECT qas.id
FROM mdl_question_attempts qa
JOIN mdl_question_attempt_steps qas ON qas.questionattemptid = qa.id
WHERE qa.questionusageid = '134655');
# Time: 110916 14:29:52
# Query_time: 46.928032 Lock_time: 0.047359 Rows_sent: 0 Rows_examined: 5881907
SET timestamp=1316150992;
DELETE FROM mdl_question_attempt_steps WHERE questionattemptid IN (
SELECT qa.id
FROM mdl_question_attempts qa
WHERE qa.questionusageid = '134655');