SQL Server 2008 R2存储过程多次执行时输出结果顺序不同

标签 sql stored-procedures

刚刚在我们使用输出数千条记录的存储过程进行回归时遇到了一个奇怪的行为:

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

有人知道这种行为吗?

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

最佳答案

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

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

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

关于SQL Server 2008 R2存储过程多次执行时输出结果顺序不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17848482/

相关文章:

mysql - 将 x 天添加到 DATE 字段,其中 x 是另一列

mysql 查询每行的另一个表的 max()

php - 使用 phpmyadmin 的 MySQL 触发器

php - 回显 MySQL 表列中的所有值

sql - Informix SQL : How to get the date part of a datetime field in a query?

sql - FOREACH 游标内的 Informix SQL 执行函数

sql - 从存储过程返回游标

sql-server - 如何创建临时表和动态字段按行表?

sql-server - 我怎样才能得到我想要的结果? SQL Server 2005

C# ExecuteQuery 空值