我有一个查询,涉及 14 亿行的表。
此查询一切运行正常,运行时间不到一秒。
然后大约每 5 天一次,自动更新统计数据开始启动,查询开始运行近 60 秒 - 它采用不同的计划。
我检查了一下,当自动更新统计数据开始时,采样率低于表格的 1%。
现在,我的问题是 - 自动更新统计数据是否会导致优化程序选择比以前更糟糕的计划?
我可以看到,糟糕计划的估计与好计划的估计有很大不同。
好计划:
坏计划:
对于糟糕的计划来说,估计显然是错误的,但查询返回的行数是相同的。
此时,我想确认自动统计更新是否可以做到这一点?
我现在尝试使用 10% 的样本进行统计数据更新,然后观察会发生什么。
更新: 我已经完成了 10% 采样率的统计更新,查询再次运行良好。
已将此工作定期进行。