我遇到的存储过程性能差异很大,它似乎来自日期格式化的方式。我在SSMS中优化了我的存储过程并使用了日期格式N'05 / 21/2017'。这是一份SSRS报告,当我查看发送到存储过程的内容时,我看到格式为'2017-07-07 00:00:00'。有没有办法可以改变SSRS让我获得与第一个日期格式相同的性能的日期?或者我可以更改查询以更好地使用其他日期格式。以下是报告的两次运行。
EXEC [dbo].[my_report]
@StartDate = N'05/11/2017',
@EndDate = N'05/21/2017'
GO
EXEC [dbo].[my_report]
@StartDate = '2017-05-11 00:00:00',
@EndDate ='2017-05-21 00:00:00'
GO
查询正在使用它来获取范围之间的日期。
AND ecl.My_DateTime between @StartDate and DATEADD(day,1,@EndDate)
对于第一个示例,存储过程在一秒钟内执行,第二个执行需要一分钟才能运行。