Moodle2.1がリリースされましたね

Re: Moodle2.1がリリースされましたね

- T N の投稿
返信数: 0

バージョンは以下の様になっています。
Apache: httpd-2.2.17-1.fc14.x86_64
MySQL: mysql-5.1.58-1.fc14.x86_64
PHP: php-5.3.6-1.fc14.x86_64

アップグレード後にMySQLのslow-queriesのログを取ってみますと、10秒以上かかるquizがらみのqueryがごろごろ出てきました。アップグレードの際は、ログを取っていなかったのですが、根は同じところにあるのではないかと思い、自分なりに調べているところでした。いずれご相談申し上げようと思っていましたが、とりあえず、ログの一部をご覧ください。

# Time: 110812  9:20:01
# User@Host: XXXXX[YYYYY] @ localhost []
# Query_time: 57.798241  Lock_time: 0.000184 Rows_sent: 500  Rows_examined: 3276
SET timestamp=1313108401;
SELECT
                CONCAT(u.id, '#', COALESCE(quiza.attempt, 0)) AS uniqueid,
(CASE WHEN quiza.id = (
                    SELECT MIN(qa2.id)
                    FROM mdl_quiz_attempts qa2
                    WHERE qa2.quiz = quiza.quiz AND
                        qa2.userid = quiza.userid AND
                        COALESCE(qa2.sumgrades, 0) = (
                            SELECT MAX(COALESCE(qa3.sumgrades, 0))
                            FROM mdl_quiz_attempts qa3
                            WHERE qa3.quiz = quiza.quiz AND
                                qa3.userid = quiza.userid
                        )
                    ) THEN 1 ELSE 0 END) AS gradedattempt,
                quiza.uniqueid AS usageid,
                quiza.id AS attempt,
                u.id AS userid,
                u.idnumber,
                u.firstname,
                u.lastname,
                u.picture,
                u.imagealt,
                u.institution,
                u.department,
                u.email,
                quiza.sumgrades,
                quiza.timefinish,
                quiza.timestart,
                CASE WHEN quiza.timefinish = 0 THEN null
                     WHEN quiza.timefinish > quiza.timestart THEN quiza.timefinish - quiza.timestart
                     ELSE 0 END AS duration, COALESCE((
                                SELECT MAX(qqr.regraded)
                                  FROM mdl_quiz_overview_regrades qqr
                                 WHERE qqr.questionusageid = quiza.uniqueid
                          ), -1) AS regraded
                FROM
mdl_user u
LEFT JOIN mdl_quiz_attempts quiza ON
                                    quiza.userid = u.id AND quiza.quiz = '1350'
                WHERE quiza.id IS NOT NULL AND quiza.preview = 0
                ORDER BY timefinish DESC, quiza.id ASC LIMIT 0, 500;


この記事が参考になりました。ありがとうございました。