我们最近实施了数据仓库和报告解决方案。通常,将信息拉到一起的过程大约需要8分钟。
每天大约一次,一个特定的存储过程需要比预期更长的时间(约2小时)。一天中的时间没有押韵或理由,通常下一次运行会正常进行,这使得追踪更加困难。
到目前为止,我已经使用分析器查找哪个存储过程花费的时间比预期的长,并且expected execution plan.
我怎样才能弄清楚为什么会这样?
答案 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子句)来限制两个有用的插入。