我很难弄清楚为什么在一种情况下强制执行特定的执行计划,而不是在另一种情况下。例子:
select min(COLUMN) from TABLE where FK_COLUMN = 1;
对比
select min(COLUMN) from TABLE where FK_COLUMN = 1 group by FK_COLUMN;
第一个生成带有索引扫描的执行计划,而在第二个中,扫描被查找替换。进一步增加我的困惑的是,这不会发生在表格的每一列上 - 对于某些列,我不需要 group by 来生成搜索。我还注意到,缓慢的情况只发生在某些外键值上——那些只返回没有行的值,但不是所有没有返回行的值都会产生不利的计划。是什么赋予了?