统计信息会影响查询逻辑而不是性能吗?

Bua*_*aXD 2 sql-server statistics

有没有可能是重建索引的频率(自动触发统计更新)会影响查询逻辑?

与我一起工作的一位开发人员声称存储过程失败(存在类型转换错误),因为在查询执行期间统计数据没有更新,并且它使用了错误的查询计划。他还声称,在更新统计数据后,该程序运行良好。

甚至有可能吗?

Jam*_*s Z 6

至少我认为该过程有可能获得不同的计划,这样它就不会触及具有“无效”数据的行,例如存储为不正确的 varchar 的数字或日期,然后在程序。

例如,如果您同时获取日期范围和客户代码,并且该客户的某些数据导致错误,但在日期范围之外——因此,如果计划使用日期范围,则它可以正常工作,但如果它为客户获取所有行,然后执行与转换相关的操作,最后比较日期范围,然后失败。

我还没有测试过这个,但我认为这可能发生,但当然数据/程序应该是固定的。

  • 是的,这完全有可能,如本连接项 https://connect.microsoft.com/SQLServer/feedback/details/537419/sql-server-should-not-raise-illogical-errors 中所述 (2认同)