Я использую пакет RSQLite для выполнения запросов к локальной базе данных SQLite, а для некоторых запросов интерфейс RSQLite довольно медленный.
В качестве конкретного примера следующий запрос выполняется менее одной секунды с помощью утилиты командной строки sqlite3:
$ sqlite3 data/svn.db
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select count(distinct svn_path.revision) FROM src INNER JOIN svn_path ON src.filename=svn_path.path;
5039
Но эквивалентный запрос в R занимает чуть более двух минутиспользует 100% одного из моих процессоров:
> library(RSQLite)
Loading required package: DBI
> con <- dbConnect(SQLite(), dbname="data/svn.db")
> dbGetQuery(con, "select count(distinct svn_path.revision) FROM src INNER JOIN svn_path ON src.filename=svn_path.path")
count(distinct svn_path.revision)
1 5039
Почему производительность через интерфейс R намного ниже?
Обратите внимание, что я использую R64 2.10.1 в Mac OS X 10.6.6.