我正在处理这个存储过程,其中一个选项需要5分钟才能运行,但其他所有选项只需要5秒。根据选项花费很长时间的SQL查询
DECLARE @rptType varchar(75)
SET @rptType = 'Audits'
SELECT CLT.[cltNum] AS [Client Number] ,CLT.[cltEng] AS [Engagement] ,CLT.[cltName] AS [Client Name] , CLT.[CSPLname] AS [Assurance Partner], CLT.[cmgLName], e.[DDEventDesc] AS [Project Type], Budget.[CBudProjectDesc] AS [Project Description], DUE.[CDTargetAmount] AS [Budget], MIN(WIP.[wdate]) [1st Date], CAST(SUM(WIP.[wRate]*WIP.[wHours]) AS decimal(34,2)) [Billable WIP], CAST(SUM(AR.[ARProgress])AS decimal(34,2)) [Progress], CAST((SUM(WIP.[wRate]*WIP.[wHours]) - SUM(AR.[ARProgress]))AS decimal(34,2)) [Net Wip], CAST(sum(Bucket.[cinvar])AS decimal(34,2)) [AR Balence], MAX(inv.[InvDate]) AS [Last InvoiceDate], due.[CDDateDelivered] AS [Project OTD Date]From [sab].[dbo].[WIP] AS WIP
Join [sab].[dbo].Clients AS CLT
ON WIP.[wcltID] = CLt.[ID]
Join [sab].[dbo].[cltdue] AS DUE
ON DUE.[CDID] = WIP.[wDue]
join [sab].[dbo].[DDEvents] AS E
ON DUE.[cdEventID] = e.[ID]
join [sab].[dbo].[Invoice] AS Inv
ON WIP.[wInvNum] = INV.[invNumber]
Join [sab].[dbo].[AcctsRec] AS AR
ON INV.[invNumber] = AR.[ARApplyTo]
Join [sab].[dbo].[ClientBuckets] AS Bucket
ON CLT.ID = Bucket.ID
JOIN [sab].[dbo].[cltBudget] AS Budget
ON clt.ID = cBudCltID
WHERE (@rptType = 'Audit - Payroll' AND e.[DDEventDesc] = 'Audit - Payroll' AND AR.[ARType] = 1 AND (CLT.[cmaster]=1 OR CLT.[cinvIndivEng] = 0)) OR
(@rptType = 'Audits' AND (e.[ID] = '132' OR e.[ID] = '133' OR e.[ID] = '134' OR e.[ID] = '135' OR e.[ID] = '139' OR e.[ID] = '140' OR e.[ID] = '142' OR e.[ID] = '178')
AND AR.[ARType] = 1 AND (CLT.[cmaster]=1 OR CLT.[cinvIndivEng] = 0)
) OR
(@rptType = 'Reviews & Comps' AND e.[DDEventDesc] IN ('Audit - Review', 'Audit -Comp/Disc','Audit - Comp w/o Disc') AND AR.[ARType] = 1 AND (CLT.[cmaster]=1 OR CLT.[cinvIndivEng] = 0)) OR
(@rptType = 'Assur Tax Returns' AND e.[DDEventDesc] IN ('5500','720-PCORI','8955-SSA','Campaign Report','Corporate (1120-POL)','LM-1','LM-2','LM-3','LM-4','LM-10','LM-30','Non-Profit (990)','Non-Profit (990 EZ)','Non-Profit (990-N)','Non-Profit (990-T)','Schedule C Letters','Section 104D Letter') AND AR.[ARType] = 1 AND (CLT.[cmaster]=1 OR CLT.[cinvIndivEng] = 0))
GROUP BY
CLT.[cltnum],
CLT.[clteng],
CLT.[cltName],
CLT.[CSPLname],
e.[DDEventDesc],
Budget.[CBudProjectDesc],
DUE.[CDTargetAmount],
DUE.[CDDateDelivered],
DUE.[CDDateReceived],
CLT.[CMGLname]
Having sum(Bucket.[cinvar])>0
'审计'是一个需要很长的时间。
我认为,这是一些与where语句 – user3120232
不审核返回显著更多或更少的显著数据比其他的选择吗?如果是这样,你应该查找参数嗅探。 –
可能重复的[SQL Server:查询速度快,但程序速度慢](http://stackoverflow.com/questions/440944/sql-server-query-fast-but-slow-from-procedure) –