[步骤]
CODE:N1318478Error:11_-2_0_-2146232060
SQL:
SELECT pop.StockOrderNumber,
pbl.BoxNo,
pbli.SKU,
pop.ID,
wh.AccountNo,
wh.Password,
wh.WareHouseCode,
whp.OrderSourceSKU,
pbli.ProductNum,
wh.UserKey,
wh.Token,
ot.LevelName1,
ot.LevelValue1,
wh.WareHouseLinkName,
oi.IsFBABarCodes,
wh.IsUseOverseaPlatformApi,
wh.WareHouseType
FROM RB_Procurement_Order_Package pop (NOLOCK)
INNER JOIN RB_OrderInfo oi (nolock)
ON pop.MergerPackageNo = oi.OrderCode
AND pop.CustomerID = oi.CustomerID
INNER JOIN RB_WareHouse wh (nolock)
ON oi.ToWareHouseID = wh.ID
AND oi.CustomerID = wh.CustomerID
AND wh.WareHouseType = @WareHouseType
LEFT JOIN RB_PackingBoxingList pbl (NOLOCK)
ON pbl.OrderPackageID = pop.ID
AND pbl.CustomerID = pop.CustomerID
LEFT JOIN RB_PackingBoxingList_Items pbli (NOLOCK)
ON pbl.ID = pbli.PackingBoxingID
LEFT JOIN rb_product pro (NOLOCK)
ON pbli.SKU = CASE
WHEN pbli.SkuType = 1 THEN pro.SKU
ELSE pro.ClientSKU
END
AND pro.CustomerID = pbli.CustomerID
LEFT JOIN RB_WareHouse_Product whp (nolock)
ON oi.CustomerID = whp.CustomerID
AND oi.ToWareHouseID = whp.WareHouseID
AND PRO.SKU = whp.SKU
LEFT JOIN RB_Oversea_Transport ot (nolock)
ON oi.CustomerID = ot.CustomerID
AND oi.TransportID = ot.TransportID
AND ot.WareHouseType = @WareHouseType
WHERE pop.CustomerID = @customerID
AND pop.StockOrderNumber = @StockOrderNumber
AND wh.WareHouseType = @WareHouseType
PARAMS:@StockOrderNumber = RVG1009-220926-0002 ,@customerID = 1 ,@WareHouseType = 13 ,
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.DALExtend.RB_PackingBoxingListExtend.GetByStockOrderNumberExtend(Int32 customerID, String stockOrderNumber, Int32 warehouseType)
在 PandaBuy.ERP.Web.IrobotBox.Delivery.Oversea.StockOrderMarkPrintV2.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_delivery_oversea_stockordermarkprintv2_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)
[结果]
[期望]
整改优化此SQL
LEFT JOIN rb_product pro (NOLOCK)ON pbli.SKU = CASE
WHEN pbli.SkuType = 1 THEN pro.SKU
ELSE pro.ClientSKU
END
AND pro.CustomerID = pbli.CustomerID
case 语句导致SQL 超时