Edgewall Software

Opened 9 years ago

Last modified 3 years ago

#11826 new enhancement

Optimize ticket.query.execute — at Version 1

Reported by: anonymous Owned by:
Priority: normal Milestone: next-major-releases
Component: query system Version: 1.1.2
Severity: minor Keywords: performance
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description (last modified by anonymous)

The ticket.query.execute function could be optimised somewhat…

     if self.max == 0:
            self.has_more_pages = False
            self.offset = 0
        else:
            self.has_more_pages = True
            self.offset = self.max * (self.page - 1)

source:trunk/trac/ticket/query.py?rev=13234#L110

            self.num_items = self._count(sql, args)

            if self.num_items <= self.max:
                self.has_more_pages = False

            if self.has_more_pages:

source:trunk/trac/ticket/query.py?rev=13234#L295

if self.max = 0 this: self.num_items = self._count(sql, args) is useless since if self.has_more_pages: will always be False.

So I suggest adding something like:

if self.has_more_pages: // This line
     self.num_items = self._count(sql, args)

            if self.num_items <= self.max:
                self.has_more_pages = False

            if self.has_more_pages:

That would save one sql-query which in worst case scenario could double(?) the execution time I suppose

Change History (1)

comment:1 by anonymous, 9 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.