我有一个非常大的存储过程,它采用单个参数@date
。当我突出显示SQL代码并执行时,查询在大约25秒内运行。但是,如果我尝试在一个单独的窗口中运行存储过程使用:Exec <存储过程>极慢
Exec <Stored Procedure> @date = '2013-10-16'
存储过程大约需要一个小时半的运行。任何想法为什么这可能会发生?我也试图通过BIDS来运行它,而存储过程只需要运行一段时间。
注:当我强调要执行的代码,我用
Declare @date as date = '2013-10-16'
设置参数。
我会检查正在将proc中使用的源表,看看它们1.有多大和2索引和索引的碎片。 – GPH
尝试清除你的sql执行计划。 http://stackoverflow.com/questions/1288808/sql-server-2005-how-do-you-clear-out-a-query-execution-plan –
高亮显示的代码与存储过程的创建/修改声明,将创建/保存存储过程。 在第二个窗口中,你实际上是在执行过程带来的结果,如果考虑到太多的时间,也许有一个索引问题,或数据量过多过程中,使用的执行计划,检查那里是被更慢 –