Looks like SQLite's optimizer can't handle the subqueries in event_view,
so we should restrict their usage in WHERE clauses.

Bluebird revision 271 fixes this (please confirm).

-- 
You received this bug notification because you are a member of Zeitgeist
Framework Team, which is subscribed to Zeitgeist Framework.
https://bugs.launchpad.net/bugs/844877

Title:
  Query execution slow

Status in Zeitgeist Framework:
  New

Bug description:
  Synapse is using various not-so-complex find_events queries to display
  recent activities, and it seems that especially a query for "All"
  category is taking much longer than any other query (~750ms with a DB
  with 200k events).

  Here's the output from zg with the debug_sql extension:

  [DEBUG - root] # parameters: {'event_templates': 
[Event([dbus.Array([dbus.String(u''), '1315492708863', dbus.String(u''), 
dbus.String(u''), dbus.String(u''), ''], signature=dbus.Signature('s')), 
[Subject([dbus.String(u''), dbus.String(u''), dbus.String(u''), 
dbus.String(u''), dbus.String(u''), dbus.String(u''), dbus.String(u''), 
dbus.String(u'')]), Subject([dbus.String(u''), 
dbus.String(u'!http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder'),
 dbus.String(u''), dbus.String(u''), dbus.String(u''), dbus.String(u''), 
dbus.String(u''), dbus.String(u'')]), Subject([dbus.String(u''), 
dbus.String(u'!http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software'),
 dbus.String(u''), dbus.String(u''), dbus.String(u''), dbus.String(u''), 
dbus.String(u''), dbus.String(u'')])], dbus.Array([], 
signature=dbus.Signature('y'))])],
   'max_events': dbus.UInt32(96L),
   'order': dbus.UInt32(2L),
   'return_mode': 1,
   'self': <_zeitgeist.engine.main.ZeitgeistEngine instance at 0x1b66248>,
   'sender': ':1.3604',
   'storage_state': dbus.UInt32(2L),
   'time_range': [1300977508860, 9223372036854775807]}

  [DEBUG - root] # database size: {'actor': 129,
   'event': 192746,
   'interpretation': 68,
   'manifestation': 27,
   'mimetype': 353,
   'uri': 60265}
  [DEBUG - root] # BEGIN SQL QUERY #
  no pretty sql: SELECT id FROM event_view
                                NATURAL JOIN (
                                        SELECT subj_id,
                                                max(timestamp) AS timestamp
                                                
                                        FROM event_view  WHERE (+timestamp >= ? 
AND ((NOT (subj_interpretation = ?) AND NOT (subj_interpretation = ? OR 
subj_interpretation = ? OR subj_interpretation = ?))))
                                        GROUP BY subj_id)
                                GROUP BY subj_id
                                ORDER BY  timestamp DESC
                                 LIMIT 96 : [1300977508860, 45, 46, 47, 43]
  took 0.712120s
  # END SQL QUERY
  [DEBUG - zeitgeist.engine] Found 96 events IDs in 0.723284s

To manage notifications about this bug go to:
https://bugs.launchpad.net/zeitgeist/+bug/844877/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~zeitgeist
Post to     : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp

Reply via email to