바깥 쪽 적용보기를 사용할 때 이상한 쿼리 속도 결과가 나타납니다.보기에서 2 개의 다른 열에 고유 카운트를 수행하고 있습니다. 1 회는 0.1 초 이내에 완료되고, 다른 하나는 0.1 초 이내에 수행됩니다. 4-6 초가 걸리며 두 번째 카운트 쿼리가 바깥 쪽 적용의 일부이기 때문에 느리게 반환됩니까? 그렇다면 어떻게이 쿼리를 빠르게 할 수 있습니까?SQL보기 바깥 쪽 적용 속도
빠른 고유 한 카운트입니다 -
SELECT DISTINCT ISNULL([ItemType], 'N/A') AS Items FROM vwCustomerItemDetailsFull
느린 고유 한 카운트입니다 -
은SELECT DISTINCT ISNULL([CustomerName], 'N/A') AS Items FROM vwCustomerItemDetailsFull
뷰는 -
SELECT I.ItemID,
IT.Name AS ItemType,
CASE
WHEN CustomerItemEndDate IS NULL
OR CustomerItemEndDate > GETDATE() THEN CustomerItems.CustomerName
ELSE NULL
END AS CustomerName,
CASE
WHEN CustomerItemEndDate IS NULL
OR CustomerItemEndDate > GETDATE() THEN CustomerItems.CustomerNumber
ELSE NULL
END AS CustomerNumber,
CASE
WHEN CustomerItemEndDate IS NULL
OR CustomerItemEndDate > GETDATE() THEN CustomerItems.CustomerItemStartDate
ELSE NULL
END AS CustomerItemStartDate,
FROM tblItems I
INNER JOIN tblItemTypes IT
ON I.ItemTypeID = IT.ItemTypeID
OUTER APPLY (SELECT TOP 1 CustomerName,
CustomerNumber,
StartDate AS CustomerItemStartDate,
EndDate AS CustomerItemEndDate
FROM tblCustomerItems CI
INNER JOIN tblCustomers C
ON C.CustomerID = CI.CustomerID
WHERE CI.ItemID = I.ItemID
ORDER BY EndDate DESC) AS CustomerItems
'OUTER APPLY'는 결과에 영향을 미치지 않으므로 'ItemType'대소 문자는 절대 실행되지 않습니다. 실행 계획은 어떻게 생겼습니까? –