【问题标题】:SQL Server 2008 R2 stored procedure output results in different order when executing multiple timesSQL Server 2008 R2存储过程多次执行时输出结果顺序不同
【发布时间】:2013-07-24 18:47:46
【问题描述】:

我们在回归过程中遇到了一个奇怪的行为,存储过程输出了数千条记录:

如果存储过程在短时间内被调用超过 20 次,则可以使用相同的参数以不同的顺序输出结果。

有人知道这种行为吗?

由于某种原因,我们无法在存储过程中明确指定顺序。

【问题讨论】:

标签: sql stored-procedures


【解决方案1】:

并行查询计划听起来可能是罪魁祸首(或者在不同的运行中使用了不同的查询计划)。

如果您没有使用ORDER BY 明确订购,则无法保证订购。

你能发布存储过程和查询计划吗?

【讨论】:

  • 是的,这是由于并行查询计划。一篇有趣的文章 - sqlblog.com/blogs/paul_white/archive/2011/12/23/… 存储过程非常复杂,需要几秒钟才能正常执行,这说明我们使用的并行计划,正如我们的测试所发现的那样
猜你喜欢
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
相关资源
最近更新 更多