[R] RODBC sqlQuery insert slow

Bill Szkotnicki bszk at uoguelph.ca
Fri Oct 13 15:09:28 CEST 2006


Hello,
I am trying to insert a lot of data into a table using windows R (2.3.1) 
and a mysql database via RODBC.
First I read a file with read.csv and then form sql insert statements 
for each row and execute the insert query one row at a time. See the 
loop below.
This turns out to be very slow.
Can anyone please suggest a way to speed it up?

Thanks, Bill

# R code
ntry=dim(ti)[1]
date()
nbefore=sqlQuery(channel,"SELECT COUNT(*) FROM logger")
for (i in 1:ntry) {
sql="INSERT INTO logger (time,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10) VALUES("
d1=strptime(ti[i,2],"%d/%m/%y %H:%M:%S %p")
sql=paste(sql,"'",d1,"'" )
sql=paste(sql,",",ti[i,3] )
sql=paste(sql,",",ti[i,4] )
sql=paste(sql,",",ti[i,5] )
sql=paste(sql,",",ti[i,6] )
sql=paste(sql,",",ti[i,7] )
sql=paste(sql,",",ti[i,8] )
sql=paste(sql,",",ti[i,9] )
sql=paste(sql,",",ti[i,10])
sql=paste(sql,",",ti[i,11])
sql=paste(sql,",",ti[i,12])
sql=paste(sql,")" )
#print(sql)
sqlQuery(channel, sql)
}
nafter=sqlQuery(channel,"SELECT COUNT(*) FROM logger")
nadded=nafter-nbefore;nadded
date()



More information about the R-help mailing list