shuizhongjiete 2017-08-28 05:09 采纳率: 50%
浏览 3063

SqlBulkCopy WriteToServer报超时问题

股票交易数据入库的程序,每天入库数据量约百万级。程序使用SqlBulkCopy 进行插入操作,但每天都会报一个错:
Exception:System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the opehttp://ask.csdn.net/#ration or the server is not responding. ---> System.ComponentModel.Win32Exception (0x80004005): 等待的操作过时。
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParserStateObject.WriteSni(Boolean canAccumulate)
at System.Data.SqlClient.TdsParserStateObject.WritePacket(Byte flushMode, Boolean canAccumulate)
at System.Data.SqlClient.TdsParserStateObject.WriteByte(Byte b)
at System.Data.SqlClient.TdsParser.WriteInt(Int32 v, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.WriteSqlDecimal(SqlDecimal d, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.WriteUnterminatedSqlValue(Object value, MetaType type, Int32 actualLength, Int32 codePageByteSize, Int32 offset, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.WriteSqlValue(Object value, MetaType type, Int32 actualLength, Int32 codePageByteSize, Int32 offset, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.WriteBulkCopyValue(Object value, SqlMetaDataPriv metadata, TdsParserStateObject stateObj, Boolean isSqlType, Boolean isDataFeed, Boolean isNull)
at System.Data.SqlClient.SqlBulkCopy.ReadWriteColumnValueAsync(Int32 col)
at System.Data.SqlClient.SqlBulkCopy.CopyColumnsAsync(Int32 col, TaskCompletionSource
1 source)
at System.Data.SqlClient.SqlBulkCopy.CopyRowsAsync(Int32 rowsSoFar, Int32 totalRows, CancellationToken cts, TaskCompletionSource1 source)
at System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsyncContinued(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource
1 source)
at System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsync(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource
1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)
at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
at System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState)
at GTA.DSP.DTG.MDPCom.DataBaseStorage.DBOldProxy.ReflectConfig.StorageDatas(HighFreDataContext datas, DateTime storageDate)
at GTA.DSP.DTG.MDPCom.DataBaseStorage.DBOldProxy.StorageDatas(HighFreDataContext datas, DateTime storageDate)
请教高人帮忙解答下,感激不尽!
入库核心代码如下:
using (SqlConnection sqlCon = new SqlConnection(conStr))
{
sqlCon.Open();
using (SqlTransaction tran = sqlCon.BeginTransaction())
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlCon, SqlBulkCopyOptions.Default, tran))
{
bulkCopy.DestinationTableName = string.Format("[{0}]", dicDataCorrInfo[detailKey].TableName);
foreach (var p in valTable.Properties)
{
bulkCopy.ColumnMappings.Add(p.ColumnName, p.ColumnName);
}
try
{
Logger.Log.DebugLog("###单批入库数量2:" + dt.Rows.Count);
bulkCopy.WriteToServer(dt);
tran.Commit();
}
catch (Exception)
{
try
{
tran.Rollback();
}
catch (Exception)
{ }
throw;
}
}
}
}

  • 写回答

1条回答 默认 最新

  • qq_40001267 2017-08-28 05:15
    关注

    66666666666666666666666666666666666

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算