2011-10-18 95 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