我正在从 amazonaws 服务器上的 odbc 驱动程序读取表。 我在 64 位 Windows 计算机上使用 R 4.0.0。 在家工作并使用公司的 VPN,因此我的下载网速约为 17 Mbps。
我用这个语句连接到数据库 con <- dbConnect(odbc::odbc(), "databasename", timeout = 10)
我用这个语句访问该表 case_tbl <- tbl(con, dbplyr::in_schema("fhv_owner", "case")) 案例 <- 收集(case_tbl)
该表有 500K 行和 60 列,所以它并不大,但下载大约需要 2 分钟。 如果我的网速很慢,有时需要 30 分钟。
有什么办法可以加快速度吗?也许是用 data.table 而不是 dplyr 的东西?
我尝试过过滤我选择的列,但有时我需要更多列并且必须重新运行。
也许我只需要为更快的互联网付费。
谢谢, 詹妮弗
最佳答案
由于您不在这里进行任何数据操作data.table
不会帮助您加快该过程。
要确保延迟是由于您的互联网连接速度造成的,而与 dbplyr
无关,请直接使用 DBI
:
library(DBI)
con <- dbConnect(odbc::odbc(), "databasename", timeout = 10)
system.time({case_tbl <- dbGetQuery(con, "SELECT * FROM fhv_owner.case")})
关于r - 如何加快 dbconnect 数据库的collect()速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62937026/