【发布时间】:2019-02-16 23:48:46
【问题描述】:
我从 RStudio 启动了 4 个会话,我在任务管理器上看到了 4 个“R Studio R 会话”。我在每个会话和 dbwritetable 中使用相同的 dsn 名称连接到同一个 SQL 数据库表。
conn<-dbConnect(odbc::odbc(),"server",database="x_test")
dbWriteTable(conn,"x_testbl",export,overwrite=FALSE,append=TRUE)
请注意,export 是一个 data.table,它与正在写入的 SQL 表具有相同的列,并且会话中的每个“export”表都将是相对唯一的,但某些列可能具有相同的值(自然)。
我希望在每个会话中同时执行多个写入。每个会话执行一些计算,然后 dbwritetable 将 data.table 写入 SQL 表。这会引起任何问题吗?我能做些什么来确保没有问题吗?谢谢!
【问题讨论】:
-
@RYoda 感谢您的回复,请参阅上面的编辑。
-
Microsoft SQL Server 标准(64 位)版本:13.0.4001.0
-
@RYoda 我这样做:我去 RStudio 中的会话并开始“新会话”。我这样做了4次。我在任务管理器中看到 4 个“R Studio R session”。我希望在每个会话中运行相同的脚本。
-
好的,我看不出这在 R 端失败的任何原因。数据库正在处理并发插入,可能最好通过
dbBegin和dbCommit使用事务,但它不应该是必需的。我将使用 MS-SQL 2016 进行快速测试... -
@RYoda 感谢您的宝贵时间!我希望做 4 节课,这样我就可以基本上并行写作并减少总时间。如果您需要更多信息,请告诉我。