我正在使用dplyr
和dbplyr
与我的数据库交互的包。我有一张包含数百万条记录的表。我还有一个值列表,这些值对应于我希望过滤的同一个表中的键。通常我会做这样的事情来过滤表格。
library(ROracle)
# connect info omitted
con <- dbConnect(...)
# df with values - my_values
con %>% tbl('MY_TABLE') %>% filter(FIELD %in% my_values$FIELD)
但是,该my_values
对象包含超过 50 万个条目(因此我在这里不提供实际数据)。当它们基本上被放入一个IN
语句(它基本上挂起)时,这显然是没有效率的。通常,如果我在编写 SQL,我会创建一个临时表并编写一个WHERE EXISTS
子句。但在这种情况下,我没有写权限。
如何使此查询在 R 中更有效?