2011-10-18 97 views
1

我尝试使用RpgSQL从R访问我的PostgreSQL数据库。RpgSQL - 为什么这么慢?

我的数据库非常大,查询相当复杂。所以我明白我必须等一下。

但是,如果我使用pgAdmin III作为客户端,查询可能需要5秒钟。当我使用RpgSQL时,相同的查询字面上需要很长时间。

我看不出原因,因为服务器而不是客户端干的工作,对吧?

你能给我一个理由和可能的解决方案吗?

谢谢!

+0

你可以使用RODBC试一试,看看这更快。 RpgSQL的版本号0.1-5对我来说听起来不太成熟。 – ROLO

+0

谢谢。也许你是对的,但是RODBC似乎非常复杂(特别是因为我的工作计算机上没有管理员权限 - 可悲但是真实) – speendo

+0

您可以在Windows中创建一个您不需要的'用户DSN'通过控制面板中的“设置数据源(ODBC)”管理员权限。啊,但你需要MySQL ODBC驱动程序,并且安装驱动程序确实需要管理员权限......对不起!你真的在使用Windows吗? – ROLO

回答

3

还有RPostgreSQL包 这是积极维护。由于它直接位于PostgreSQL API之上,因此其 应该比通过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> 
+0

谢谢德克!我读过你是RPostgreSQL的维护者。其实我很乐意使用RPostgreSQL,但似乎很难将其安装在Windows x32机器上!? – speendo