SQL - 如何确定存储过程有时需要比平时多很多倍的时间

时间:2014-03-11 14:35:44

标签: sql sql-server performance stored-procedures

我们最近实施了数据仓库和报告解决方案。通常,将信息拉到一起的过程大约需要8分钟。

每天大约一次,一个特定的存储过程需要比预期更长的时间(约2小时)。一天中的时间没有押韵或理由,通常下一次运行会正常进行,这使得追踪更加困难。

到目前为止,我已经使用分析器查找哪个存储过程花费的时间比预期的长,并且expected execution plan.

我怎样才能弄清楚为什么会这样?

1 个答案:

答案 0 :(得分:0)

如果我从解释计划中正确理解,你有2个表,你正在进行联合,然后插入记录。

我会将其拆分为以下内容;

有一个临时表,它将代表union all table的结构。

1> Truncate the temporary table
2> Insert records from the first part of the union all query
3> Insert records from the second part of the union all query
4> restructure the actual insert to work from the temporary table

这应该快几倍; 您可以使用适当的选择标准(where子句)来限制两个有用的插入。