Comment 1 for bug 668138

Revision history for this message
Stuart Bishop (stub) wrote :

I don't think it is an 8.4 issue - I suspect this would perform just as badly under other releases with the right data. Things that stand out are an outer join where a normal join would do, and the IN clauses referencing tables in the outer scope causing them to be reevaluated many times and not scaling.

SELECT BugTask.*, Product.*, SourcePackageName.*, Bug.*
FROM BugTask
LEFT JOIN Bug ON BugTask.bug = Bug.id
LEFT JOIN Product ON BugTask.product = Product.id
LEFT JOIN SourcePackageName ON BugTask.sourcepackagename = SourcePackageName.id WHERE
    (1=1)
    AND Bug.id = BugTask.bug
    AND (
        (BugTask.status = 10)
        OR (BugTask.status = 15)
        OR (BugTask.status = 20)
        OR (BugTask.status = 21)
        OR (BugTask.status = 22)
        OR (BugTask.status = 25))
    AND Bug.duplicateof is NULL
    AND BugTask.id IN (
        SELECT BugTask.id FROM BugTask, BugMessage, Message
        WHERE
            Message.owner = 293289
            AND Message.id = BugMessage.message
            AND BugTask.bug = BugMessage.bug
            AND Message.id NOT IN (
                SELECT BugMessage.message FROM BugMessage
                WHERE BugMessage.bug = BugTask.bug
                ORDER BY BugMessage.id LIMIT 1 ) )
    AND Bug.private = FALSE
ORDER BY BugTask.importance DESC, BugTask.id LIMIT 76 OFFSET 0