我尝试使用RpgSQL从R访问我的PostgreSQL数据库。RpgSQL - 为什么这么慢?
我的数据库非常大,查询相当复杂。所以我明白我必须等一下。
但是,如果我使用pgAdmin III作为客户端,查询可能需要5秒钟。当我使用RpgSQL时,相同的查询字面上需要很长时间。
我看不出原因,因为服务器而不是客户端干的工作,对吧?
你能给我一个理由和可能的解决方案吗?
谢谢!
我尝试使用RpgSQL从R访问我的PostgreSQL数据库。RpgSQL - 为什么这么慢?
我的数据库非常大,查询相当复杂。所以我明白我必须等一下。
但是,如果我使用pgAdmin III作为客户端,查询可能需要5秒钟。当我使用RpgSQL时,相同的查询字面上需要很长时间。
我看不出原因,因为服务器而不是客户端干的工作,对吧?
你能给我一个理由和可能的解决方案吗?
谢谢!
还有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>
谢谢德克!我读过你是RPostgreSQL的维护者。其实我很乐意使用RPostgreSQL,但似乎很难将其安装在Windows x32机器上!? – speendo
你可以使用RODBC试一试,看看这更快。 RpgSQL的版本号0.1-5对我来说听起来不太成熟。 – ROLO
谢谢。也许你是对的,但是RODBC似乎非常复杂(特别是因为我的工作计算机上没有管理员权限 - 可悲但是真实) – speendo
您可以在Windows中创建一个您不需要的'用户DSN'通过控制面板中的“设置数据源(ODBC)”管理员权限。啊,但你需要MySQL ODBC驱动程序,并且安装驱动程序确实需要管理员权限......对不起!你真的在使用Windows吗? – ROLO