任务描述

1.问题分析

  阿里云日志每天3条左右,

  批量插入死锁:SQL:BulkCopyAddNew -TableName: RB_Amazon_Product_Base,DataTable:Count:55,BatchSize:2000

  应该是Job 并发批量操作造成的死锁, 

2.解决方案

  老莫正在分析,计划改造这快的业务,


3.完整问题信息

CODE:N2218241
Error:13_1205_52_-2146232060
SQL:BulkCopyAddNew -TableName: RB_Amazon_Product_Base,DataTable:Count:55,BatchSize:2000
PARAMS:
MESSAGE:Transaction (Process ID 1798) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
TRACE: 在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)    在 System.Data.SqlClient.SqlBulkCopy.RunParser(BulkCopySimpleResultSet bulkCopyHandler)    在 System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsyncContinuedOnSuccess(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source)    在 System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsyncContinued(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source)    在 System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsync(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source)    在 System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource`1 source)    在 System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)    在 System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)    在 System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)    在 System.Data.SqlClient.SqlBulkCopy.WriteToServer(DataTable table, DataRowState rowState)    在 RB.DAL.DBOperator.BulkCopyAddNew(DataTable dt, Int32 batchSize)   在 RB.DAL.DBOperator.toCommonTipException(SqlException ex, String sql, SqlParameter[] cmdParms)    在 RB.DAL.DBOperator.BulkCopyAddNew(DataTable dt, Int32 batchSize)    在 Biz.Irobotbox.Amazon.Amazon_AutoPublish.AmazonAutoPublishExecute(CM_Amazon_ProductAutoPublish productAutoPublish)    在 RB.Utility.TaskSmartManager`1.execute(Func`2 execFunction)    在 System.Threading.Tasks.Task.Execute()    在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)    在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)    在 System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)    在 System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)    在 System.Threading.ThreadPoolWorkQueue.Dispatch() -------------------------------------------------------------

4.这里将此类问题列举,后续跟踪验证效果

历史记录  
  1. 2022-06-29 09:41:57, 由 陈少军 创建。
  2. 2022-06-29 09:42:45, 由 陈少军 编辑。
    修改了 任务名称,区别为:
    001- 【批量插入死锁问题】
    001+ 【批量插入死锁问题】BulkCopyAddNew.RB_Amazon_Product_Base 问题分析
    001- 【批量插入死锁问题】
    001+ 【批量插入死锁问题】BulkCopyAddNew.RB_Amazon_Product_Base 问题分析
  3. 2022-07-08 09:49:57, 由 夏宇 移动,之前为 "#626 系统管理部 - 系统服务优化 "。
  4. 2022-07-25 09:55:37, 由 陈少军 完成。
    修改了 总计消耗,旧值为 "0",新值为 "2"。
    修改了 实际完成,旧值为 "",新值为 "2022-07-25 09:55:08"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2022-07-25 09:55:37"。
    修改了 由谁完成,旧值为 "",新值为 "chenshaojun"。
    大宽表的性能问题,等改造后验证
  5. 2022-07-25 10:25:25, 由 夏宇 编辑。
    修改了 所属迭代,旧值为 "637",新值为 "626"。
  6. 2023-10-31 14:53:12, 由 周杰 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "chenshaojun",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "zhoujie"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2023-10-31 14:53:12"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 系统管理部 - 系统服务优化
所属模块 /
相关需求 暂无
指派给 Closed 于 2023-10-31 14:53:12
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 陈少军 于 2022-06-29 09:41:57
由谁完成 陈少军 于 2022-07-25 09:55:08
由谁取消 暂无
由谁关闭 周杰 于 2023-10-31 14:53:12
关闭原因 已完成
最后编辑 周杰 于 2023-10-31 14:53:12
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 0工时
总计消耗 2工时
预计剩余 0工时
预计开始 2022-06-29
实际开始 2022-07-25
截止日期 2022-06-30