重现步骤

[性能问题描述]

(@CustomerID int,@P_Code varchar(50))                  SELECT alias.SKU,                         alias.GoodNum,                         alias.AvgDailySales,                         alias.WarningNum,                         alias.BatchNum,                         ISNULL(t.AllAvgDailySales, 0) AllAvgDailySales                  FROM RB_WareHouse_Product (NOLOCK) alias                      INNER JOIN RB_Procurement_List (NOLOCK) list                          ON alias.WareHouseID = list.WareHouseID                             AND alias.CustomerID = list.CustomerID                      INNER JOIN RB_Procurement_Detail (NOLOCK) det                          ON det.CustomerID = alias.CustomerID                             AND det.SKU = alias.SKU                             AND det.P_Code = list.P_Code                      LEFT JOIN View_RB_ProductChina_WareHouse_Table t                          ON alias.SKU = t.SKU                      WHERE list.CustomerID = @CustomerID                            AND list.P_Code = @P_Code;


SQL:
                SELECT alias.SKU,
                       alias.GoodNum,
                       alias.AvgDailySales,
                       alias.WarningNum,
                       alias.BatchNum,
                       ISNULL(t.AllAvgDailySales, 0) AllAvgDailySales
                FROM RB_WareHouse_Product (NOLOCK) alias
                    INNER JOIN RB_Procurement_List (NOLOCK) list
                        ON alias.WareHouseID = list.WareHouseID
                           AND alias.CustomerID = list.CustomerID
                    INNER JOIN RB_Procurement_Detail (NOLOCK) det
                        ON det.CustomerID = alias.CustomerID
                           AND det.SKU = alias.SKU
                           AND det.P_Code = list.P_Code
                    LEFT JOIN View_RB_ProductChina_WareHouse_Table t
                        ON alias.SKU = t.SKU
                    WHERE list.CustomerID = @CustomerID
                          AND list.P_Code = @P_Code;
PARAMS:@CustomerID = 1 ,@P_Code = 20006415677 ,
MESSAGE:执行超时已过期。完成操作之前已超时或服务器未响应。 
TRACE:   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.SqlInternalConnection.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.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.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   在 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.Generate.Warehouse.RB_WareHouse_ProductExtendV2.GetModelsByPCode(Int32 CustomerID, String P_code)
   在 PandaBuy.ERP.Web.IrobotBox.ProcurementV2.Procurement.ProcurementView.InitData()
   在 PandaBuy.ERP.Web.IrobotBox.ProcurementV2.Procurement.ProcurementView.Page_Load(Object sender, EventArgs e)
   在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
   在 System.Web.UI.Control.OnLoad(EventArgs e)
   在 System.Web.UI.Control.LoadRecursive()
   在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   在 System.Web.UI.Page.ProcessRequest()
   在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   在 System.Web.UI.Page.ProcessRequest(HttpContext context)
   在 ASP.irobotbox_procurementv2_procurement_procurementview_aspx.ProcessRequest(HttpContext context)
   在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
   在 System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error)
   在 System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb)
   在 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)
   在 System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
   在 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
   在 System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr pHandler, RequestNotificationStatus& notificationStatus)
   在 System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
   在 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr rootedObjectsPointer, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

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


[分析过程]


[期望结果] View_RB_ProductChina_WareHouse_Table 未添加nolock, 添加 nolock 

历史记录  
  1. 2022-08-16 13:53:16, 由 袁慧斌 创建。
  2. 2022-08-21 23:34:57, 由 胡晓龙 指派给 何建宝。
    修改了 指派给,旧值为 "huxiaolong",新值为 "hejianbao"。
  3. 2022-08-22 09:45:26, 由 何建宝 指派给 吴万春。
    修改了 指派给,旧值为 "hejianbao",新值为 "wuwanchun"。
  4. 2022-08-24 19:12:30, 由 吴万春 解决,方案为 性能问题 。
    修改了 解决方案,旧值为 "",新值为 "performance"。
    修改了 解决版本,旧值为 "",新值为 "617"。
    修改了 解决日期,旧值为 "",新值为 "2022-08-24 19:07:15"。
    修改了 指派给 ,旧值为 "wuwanchun",新值为 "linhonggui"。
    修改了 Bug状态 ,旧值为 "active",新值为 "resolved"。
    修改了 是否确认,旧值为 "0",新值为 "1"。
    修改了 解决者 ,旧值为 "",新值为 "wuwanchun"。

    已加上,文件路径 .\RB.DALExtendV2\Generate\Warehouse\RB_WareHouse_ProductExtendV2.cs;

    调用:采购单详情页;


  5. 2022-08-25 09:43:38, 由 林鸿贵 关闭。
    修改了 Bug状态 ,旧值为 "resolved",新值为 "closed"。
    修改了 指派给 ,旧值为 "linhonggui",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "linhonggui"。
    修改了 关闭日期,旧值为 "",新值为 "2022-08-25 09:43:38"。
    性能优化效果,线上观察,测试环境页面正常打开
  6. 2023-11-17 09:53:56, 由 刘超 编辑。
    修改了 所属模块,旧值为 "0",新值为 "1863"。
所属项目 技术中心-需求池
所属模块 系统运维   性能优化
所属计划
所属迭代
Bug类型
严重程度 提示
优先级 P0
Bug状态 已关闭
业务部门
影响功能
开发责任人
测试责任人
解决时效 0
激活次数 0
激活日期
是否确认 是
当前指派 Closed 于 2022-08-25 09:43:38
截止日期 0000-00-00
上线时间
上线时效
操作系统
浏览器
关键词
抄送给
所属迭代
相关需求
相关任务
由谁创建 袁慧斌 于 2022-08-16 13:53:16
影响环境 577
由谁解决 吴万春 于 2022-08-24 19:07:15
解决版本 八月分支
解决方案 性能问题
由谁关闭 林鸿贵 于 2022-08-25 09:43:38
最后修改 刘超 于 2023-11-17 09:53:48
相关Bug