我的查询有这样的结构:需要加快此SQL查询
SELECT DISTINCT (CO.CateringOrderId),
CO.CateringOrderNumber,
MC.FirstName + ' ' + MC.LastName AS "CustomerName",
CO.EventDate AS EventDate,
CO.IsCompleted,
CO.IsVerified,
MC.EmailId,
CAT.OfficePhone,
CAT.Mobile,
CAT.Fax,
CO.TotalInvoiceAmount,
CO.BarterCharityId,
(SELECT Sum (Amount)
FROM Catering_Order_Payment_Trans
WHERE CateringOrderId = CO.CateringOrderId) AS AmountReceived
FROM Catering_Orders CO,
Master_Customer MC,
Customer_Address_Trans CAT,
Catering_Order_Employee_Trans COET
WHERE MC.CompanyId = @p_CompanyId
AND (MC.CustomerId = @p_CustomerId OR @p_CustomerId = -1)
AND (CO.CateringOrderNumber LIKE '%' + @p_CateringOrderNumber + '%')
AND (CO.EventDate >= CONVERT (DATETIME, @p_FromDate) OR @p_FromDate = '')
AND (CO.EventDate <= CONVERT (DATETIME, @p_ToDate) OR @p_ToDate = '')
AND (CO.IsCompleted = @p_IsCompleted OR @p_IsCompleted = -1)
AND (COET.EmployeeId = @p_CatererId OR @p_CatererId = -1)
AND MC.CustomerId = CO.CustomerId
AND MC.PersonalAddressId = CAT.CustomerAddressId
AND (COET.CateringOrderId = CO.CateringOrderId
OR CO.CateringOrderId NOT IN
(SELECT CateringOrderId FROM Catering_Order_Employee_Trans))
AND (CAT.Mobile like '%' + @p_ContactNumber + '%')
AND (CO.IsActive is null or CO.IsActive=1)
ORDER BY CO.CateringOrderId DESC
我觉得SUM
子查询减缓它。请告诉我如何加快速度。 目前它的执行时间约为7-10秒。
什么是执行计划是什么样子? SQL Server应该能够将该查询解联到左外部联接。 –
请提供您的查询的完整示例。 – Devart
@Devart我已经更新了这个问题 – Lakshay