我正在运行一个需要很长时间的存储过程,因此我必须将超时时间增加到将近3分钟,任何人都可以提供有关如何减少要执行的存储过程,它可以在100-500个代码上正常工作,但是当代码超过20000时,它会变慢并且需要3-4分钟,下面是sp,谁能帮我优化它。运行存储过程时的性能问题
@GUID uniqueidentifier
-- Insert statements for procedure here
SELECT
COUNT(Code.allocatedVendorID) AS Amt,
MIN(Code.dateAllocated) AS dateAllocated,
derivedtbl_1.startID, derivedtbl_2.endID,
tbVendor.name,
Code.unitCost, Code.isFree, Code.isAcademic,
Code.isVoided, Code.GUID, Code.expiryDate
FROM
Code
INNER JOIN
(SELECT MIN(CodeID) AS startID, GUID
FROM Code AS tbAccessCode_1
GROUP BY GUID) AS derivedtbl_1
ON Code.GUID = derivedtbl_1.GUID
INNER JOIN
(SELECT MAX(accessCodeID) AS endID, GUID
FROM Code AS tbAccessCode_1
GROUP BY GUID) AS derivedtbl_2
ON Code.GUID = derivedtbl_2.GUID
INNER JOIN tbVendor
ON Code.allocatedVendorID = tbVendor.vendorID
WHERE (Code.GUID = @GUID) AND (Code.allocatedVendorID > 0)
GROUP BY
derivedtbl_1.startID, derivedtbl_2.endID,
tbVendor.name,
Code.unitCost, Code.isFree, Code.isAcademic,
Code.isVoided, Code.GUID, Code.expiryDate
ORDER BY dateAllocated DESC
你在的地方有哪些指标? – JNK 2012-01-18 15:34:02
代码和vendorID是索引 – 2012-01-18 15:45:43
多个子查询有可能显着影响性能。 – 2012-01-18 16:06:59