特定の実行計画が一方の状況で強制され、もう一方の状況では強制されない理由を理解するのに苦労しています。例:
select min(COLUMN) from TABLE where FK_COLUMN = 1;
対。
select min(COLUMN) from TABLE where FK_COLUMN = 1 group by FK_COLUMN;
1つ目は、インデックススキャンを使用して実行プランを作成し、2つ目はスキャンをシークに置き換えます。さらに混乱を招くのは、これがテーブルのすべての列で発生するわけではないという事実です。一部の列では、シークを生成するためにgroupbyを必要としません。また、低速状態は特定の外部キー値でのみ発生していることにも注意してください。行を返さない値のみが返されますが、行を返さないすべての値が好ましくない計画を生成するわけではありません。何が得られますか?