RpgSQL - Почему это так медленно? - PullRequest
1 голос
/ 18 октября 2011

Я пытаюсь получить доступ к моей базе данных PostgreSQL из R, используя RpgSQL .

Моя база данных очень большая, а запросы довольно сложные. Поэтому я понимаю, что мне нужно немного подождать.

Однако, если я использую pgAdmin III в качестве клиента, запрос может занять 5 секунд. Когда я использую RpgSQL, один и тот же запрос буквально занимает много времени.

Я не вижу причины для этого, поскольку сервер, а не клиент должен выполнять эту работу, верно?

Можете ли вы дать мне причину и, возможно, решение?

Спасибо!

1 Ответ

3 голосов
/ 18 октября 2011

Существует также пакет RPostgreSQL который активно поддерживается. Поскольку он находится прямо над API PostgreSQL, он должно быть быстрее, чем через ODBC с RODBC .

Вот быстрый пример из базы данных, которую я храню дома - она ​​получает тысячу простых строк за одну десятую секунды:

R> library(RPostgreSQL)
Loading required package: DBI
R> drv <- dbDriver("PostgreSQL")
R> con <- dbConnect(drv, password="....", dbname="beancounter")
R> system.time(res <- dbGetQuery(con,
+>             "select * from fxprices where date >= '2005-01-01' limit 1000")) 
   user  system elapsed 
  0.030   0.000   0.113
R> dim(res)
[1] 1000    8
R>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...