Hi Bryan, probably the problems arises because the system has to expand all these big collections in memory. I'd suggest you to change your model a bit, adding a reverse link from log_event to log (or even better, an edge), so that you can refactor your query like following:
select from log_event where log in [#10:0, #10:1, #10:4] and log.log_level = 1 ORDER BY timestamp ASC LIMIT 1000 this way you will have much more flexibility in adding indexes on log and timestamp properties, it will optimize a lot filtering and sorting and it will also save a lot of memory (sorting is a memory intensive operation) Luigi 2015-09-17 0:34 GMT+02:00 Bryan <[email protected]>: > OrientDB 2.1.2 > plocal connection > ODocument API > > Hi all, > > Evaluating OrientDB, I'm trying to optimize a query that is running out of > memory and pretty slow. I'm sure I must be doing something wrong. > Say I have a simple schema like the following: > > log > + name (String) > + events (RIDBAG of log_event) > > log_event > + message (String) > + level (int) > + timestamp (Date) > > and say I want to find all of the log events from a list of logs that have > a specified level and order by timestamp... > I.e. "select from (select expand(log_events) from [#10:0, #10:1, #10:4]) > where log_level = 1 ORDER BY timestamp ASC LIMIT 1000" > > This works fine but when I start to get 100k+ records, things slow down > and explode and such. I'm sure my query must be the problem. > > So the question is, how can I query collections and get the OIdentifiable > or ODocument that satisfy a given condition? > > > > -- > > --- > You received this message because you are subscribed to the Google Groups > "OrientDB" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- --- You received this message because you are subscribed to the Google Groups "OrientDB" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
