[R-sig-DB] RSQLite enhancements UPDATED
    Seth Falcon 
    @|@|con @end|ng |rom |hcrc@org
       
    Sun Nov  5 00:04:00 CET 2006
    
    
  
Hi all,
I have applied Ashish's enhacement patches (with some important fixes
on top).  I would love to hear feedback from anyone who can try out
the new package before we push it to CRAN.
The new stuff is in svn:
   https://hedgehog.fhcrc.org/compbio/r-dbi/trunk/SQLite/RSQLite
   user: readonly
   pass: readonly
Or you can grab 0.4-11 from here:
   http://www.bioconductor.org/packages/misc
This update includes two significant speed improvements:
1. Transactions.  By default, SQLite operates in auto-commit mode.
   This means that each SQL statement sent to the DB is immediately
   committed.  If you are doing many INSERTS or UPDATES, it is _much_
   faster to start a transaction (which turns of auto-commit), do the
   changes, and then commit.  Here's an example:
   dbBeginTransaction(db)
   ## execute many update queries here
   dbCommit(db)
   Note also that if an error occurs along the way, you can also use
   dbRollback to undo to where you issued the begin transaction.
2. Prepared queries and bound parameters.  This will also speed
   inserts and updates.  Instead of looping on calls to dbGetQuery,
   you can instead collect the data in a data.frame and make one call
   to the DB.  Here's a simple example:
   df <- data.frame(a=x, b=y, c=z)
   dbBeginTransaction(db)
   dbGetPreparedQuery(db, 
                      "update points set xpos = :a, ypos = :b where flag = :c",
                      bind.data=df)
   dbCommit(db)
Best Wishes,
+ seth
    
    
More information about the R-sig-DB
mailing list