【发布时间】:2013-10-17 15:07:00
【问题描述】:
我有一个非常大的存储过程,它采用单个参数@date。当我突出显示 SQL 代码并点击执行时,查询会在大约 25 秒内运行。但是,如果我尝试使用以下命令在单独的窗口中运行存储过程:
Exec <Stored Procedure> @date = '2013-10-16'
存储过程大约需要一个半小时才能运行。关于为什么会发生这种情况的任何想法?我也在尝试通过 BIDS 运行它,存储过程需要同样长的时间才能运行。
注意:当我突出显示要执行的代码时,我使用
Declare @date as date = '2013-10-16'
设置参数。
【问题讨论】:
-
我会检查 proc 中正在使用的源表,看看 1. 它们有多大和 2. 索引和索引碎片。
-
尝试清除你的sql执行计划。 stackoverflow.com/questions/1288808/…
-
用存储过程的create/alter语句高亮代码,将创建/保存存储过程。在第二个窗口中,您实际上是在执行过程以带来结果,如果花费太多时间,可能存在索引问题,或者处理的数据量过多,请使用执行计划检查哪里更慢
-
@Ashwin Chandran 不幸的是,我没有权限在我目前的位置上运行它,我会看看能不能找人来做。
-
@Juan Garcia 当我突出显示代码时,我不包括 Create/alter 部分,只是代码部分,它实际上确实返回了查询中预期的值表。我在哪里可以找到执行计划?我以前从未见过。
标签: sql sql-server stored-procedures ssms bids