2011-11-23 46 views
1

我正在使用大约3 * 10^6行和11列的面板数据块。这些数据存储在SQL数据库中(我使用的数据是更大数据集的子集)。我想处理数据块(每个日期分开),而不一次导入整个事件,但我必须在每个块上运行的操作都是计算密集型的,所以我想使用foreach包。使用RODBC并行数据库调用

但是,我遇到了并行运行sql调用的一些问题。如果我做一个简单的调用,例如(sqlQuery(channel, "select 1")),我可以并行运行。如果我做一个更复杂的陈述,我会得到SIGPIPE错误。有没有其他人遇到过类似的问题?

回答

1

你没有告诉我们你正在使用什么数据库。在与RODBC连接的SQLServer上,如果已通过使用事务成功完成此操作。

channel = odbcConnect(database) 
odbcSetAutoCommit(channel,FALSE) 
# Make requests here 
odbcEndTran(channel,TRUE) 

我不知道,如果这也将有助于当你只读请求,因为你的情况,但它可能是值得给予一试,因为它是唯一的TWP其他行。我询问了服务器,因为事务可以很好地与ODBC下的MSSqlServer配合使用,并且我与其他人有一些混合的结果(但没有努力)。

+0

对不起,这是MSFT SQLServer。你的结果是令人鼓舞的,你说的“使用交易”究竟意味着什么? – rlh2

相关问题