2011-11-23 69 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

相關問題