我有一个存储过程exec语句,如下所示: -
---ABC DEF-------------------------------
--- (1)Batch Run 1:38 (2) 42 Seconds (3) 41 Sec (4) 41 Sec (5) 42 Seconds
exec usp_RS_DEALIO_JLL_ECRDetails
@dEmpID=N'990000:22085'
,@Year=N'2016'
,@CommPeriod=N'24 - 11/15/2016 - 11/30/2016'
,@BusinessLine=N'3'
,@MarketID=N'1201 - Midwest: Chicago Downtown'
,@OpUnitID=N'1502 - Brokerage: Leasing - Tenant Re;990000'
,@Prof=N'002701'
,@ShowPros=N'Yes'
,@ShowRecon=N'No'
在SSMS中执行时,此存储过程大约运行45秒。但是,当我尝试使用不同的参数同时在不同的SSMS窗口中运行相同的存储过程时,需要更多的时间。
在这种情况下,上面的参数需要1:38秒。即使在SSMS中的不同窗口中同时触发10个exec存储过程语句,如何将其降低到45秒左右。
我在这里尝试做的是,通过调用SSRS报告服务器的控制台应用程序触发此存储过程。 SSRS服务器调用存储过程以生成报告。 SSRS报告服务器返回超时,导致PDF格式损坏。因此,即使向SSRS报告服务发出10个请求以下载二进制文件以避免超时,我也试图减少存储过程时间。
任何建议和想法都表示赞赏。
BTW - 存储过程有语句RECOMPILE,它绕过了我认为的参数嗅探问题: -ALTER PROCEDURE [dbo].[usp_RS_DEALIO_JLL_ECRDetails]
--DECLARE
@dEmpID NVARCHAR(50)
,@Year NVARCHAR(50)
,@CommPeriod NVARCHAR(50)
,@BusinessLine nvarchar(50)
,@MarketID NVARCHAR(MAX)
,@OpUnitID NVARCHAR(MAX)
,@Prof NVARCHAR(MAX)
,@ShowPros Nvarchar(Max)
,@ShowRecon Nvarchar(Max)
with Recompile
AS