Я использую пакет 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.