[odb-users] performance of updates in table with many rows for
	sqlite db
    Daniel James 
    danielpeterjames at gmail.com
       
    Tue Sep 11 10:08:13 EDT 2012
    
    
  
Hello
I'm not sure if this is a reasonable question but here goes:
Suppose I have the following object:
#pragma db object pointer(std::shared_ptr)
class Intensity
{
public:
    //
    // Relationships
    //
    odb::lazy_weak_ptr<Probe> probe;
    //
    // Data members.
    //
    float signal, backgroundSignal, normalisedSignal, predictedSignal;
    bool flag, extra_flag;
    unsigned long id();
private:
    friend class odb::access;
#pragma db id auto
    unsigned long id_;
};
I store about 6 million of these in a table. Then I try and update a
subset of about 40 000.
What is the quickest way to do this? At the moment it is proceeding at
a rate of about one update per second with the following SQL being
generated at each update:
UPDATE "Intensity" SET
"probe"=?,"signal"=?,"backgroundSignal"=?,"normalisedSignal"=?,"predictedSignal"=?,"flag"=?,"extra_flag"=?
WHERE "id"=?
Do I need to:
rethink the database design?
somehow use an index on the Record table to speed things up?
other strategy?
Many thanks,
Daniel
    
    
More information about the odb-users
mailing list