重现步骤

[步骤]



[03:12:47]  -------------------------------------------------------------
CODE:N03124713
Error:11_-2_0_-2146232060
SQL:SELECT oi.CustomerID,oi.OrderCode,oi.IsPay,oi.PayTime,oi.OrderSourceID,oi.WareHouseID FROM RB_OrderInfo oi(NOLOCK) 
                                            INNER JOIN RB_WareHouse wh(NOLOCK) ON oi.WareHouseID=wh.ID AND oi.CustomerID=wh.CustomerID
                                            LEFT JOIN RB_OrderInfo_InventoryCheckWhenPayed imp(NOLOCK) ON oi.OrderCode=imp.OrderCode and oi.CustomerID=imp.CustomerID
                                            WHERE oi.CustomerID=@CustomerID AND oi.IsPay=1 and oi.IsStockOrder=0 AND oi.AddTime>='2023-02-16' and wh.WareHouseType=1 AND imp.ID IS NULL
ORDER BY oi.PayTime  
PARAMS:@CustomerID = 1 ,
MESSAGE:执行超时已过期。完成操作之前已超时或服务器未响应。 
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.SqlDataReader.TrySetMetaData(_SqlMetaDataSet metaData, Boolean moreInfo)
   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
   在 RB.DAL.DBOperator.Query(String SQLString, SqlCommand cmd, Int32 Times, SqlParameter[] cmdParms, Boolean IsWriteDB)   在 RB.DAL.DBOperator.toCommonTipException(SqlException ex, String sql, SqlParameter[] cmdParms)
   在 RB.DAL.DBOperator.Query(String SQLString, SqlCommand cmd, Int32 Times, SqlParameter[] cmdParms, Boolean IsWriteDB)
   在 RB.DALExtendV2.RB_OrderInfoExtendV2.GetUncheckInventoryOrderModels(Int32 customerID, Boolean isUseWriteDB)
   在 Biz.Irobotbox.Order.OrderInfoService.AutoCheckInventoryWithPaidOrder(Int32 customerID)
   在 ChinaDownLoadImage.Task.Order.Task_AutoCheckInventoryWithPaidOrderService.Execute()
   在 RB.Utility.SystemTask.<doTask>b__43_0()
   在 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()

-------------------------------------------------------------

[结果]


[期望]

改造 SQL 或者 延长 SQL 查询时长让其不报错
历史记录  
  1. 2025-10-21 09:19:45, 由 袁慧斌 创建。
  2. 2025-10-21 09:20:00, 由 袁慧斌 编辑。
    修改了 优先级 ,旧值为 "2",新值为 "3"。
    修改了 解决时效,旧值为 "0",新值为 "-1"。
  3. 2025-10-21 15:26:35, 由 李乐同 指派给 张明磊。
    修改了 指派给,旧值为 "liletong",新值为 "zhangminglei"。
  4. 2025-10-21 16:07:42, 由 张明磊 指派给 程伟。
    修改了 指派给,旧值为 "zhangminglei",新值为 "chengwei"。
    帮忙看下呢
  5. 2025-10-21 16:08:12, 由 程伟 指派给 唐飞飞。
    修改了 指派给,旧值为 "chengwei",新值为 "tangfeifei"。
  6. 2025-10-22 14:18:06, 由 唐飞飞 指派给 李健兴。
    修改了 指派给,旧值为 "tangfeifei",新值为 "lijianxing"。

    该功能是为了自动检查库存是否满足订单(服务是5分钟执行一次),同时根据检查的库存数据统计交付率(最多也就是查询1个月内的数据)。之所以超时是因为订单库存检查数据已经太多了,而且统计时间也太长。


    优化方案:

       方案一:

          自动检查库存是否满足订单,每次查询数据的时候,仅查询1天之内添加的订单

       方案二:

          自动清除订单库存检查数据,保留半年的即可

    转需求处理一下

  7. 2025-10-23 19:58:58, 由 李健兴 转为 需求,编号为 #31685 WMS:性能优化-获取取消选中的库存订单 SQL 大量超时 。
  8. 2025-10-23 19:58:58, 由 李健兴 关闭。
所属项目 技术中心-需求池
所属模块 财务   客户订单
所属计划
所属迭代
Bug类型
严重程度 一般
优先级 P2
Bug状态 已关闭
业务部门 供应链管理中心
影响功能
开发责任人 李健兴
测试责任人
解决时效 0
激活次数 0
激活日期
是否确认 否
当前指派 Closed 于 2025-10-23 19:58:58
截止日期 0000-00-00
上线时间 0000-00-00 00:00:00
上线时效 -1
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 袁慧斌 于 2025-10-21 09:19:45
影响环境 生产环境-线上测试
由谁解决 李健兴 于 2025-10-23 19:58:58
解决版本
解决方案 tostory
由谁关闭 李健兴 于 2025-10-23 19:58:58
最后修改 唐飞飞 于 2025-10-22 14:18:06