私はEFモデルでTPT継承を持っています。 「マスター」抽象タイプが存在し、そこから複数のタイプが継承されます(「オーダー」を含む)。 1700000発注がありますが、マスターには他のタイプに対応する行がさらに多くあります。1対1の結合SQLサーバーで十分に速くない
50件の注文を選択するのが同じ50件の注文を選択するよりも遅かったが、他の関連するエンティティが含まれているという奇妙なケースがあった。それは非常に単純なクエリがデータベースに戻って追跡した。
は1秒以上かかる。 (はい、私たちの場合、1秒は実際には多すぎます)。しかし、これはoption(loop join)
(非常に高速を追加昇順(クラスタ化インデックスは昇順であり、それ以外にはできません)
order by
(約2倍の速さ)- によって高速化のいずれか行うことができます左外側を使用して)
- )は、(二倍高速
Where FormTypeID = 1
(識別子列)を追加実際に同じ結果をもたらした唯一の解決策は、3と5ですが、3は、Entity Frameworkの(私たちはクエリにヒントを追加することはできません)と5は、任意の提案は大歓迎され、十分な
速くない使用は不可能です。
まさにあなたの質問は何ですか? –
クエリの実行速度を改善するにはどうすればよいですか? – Alireza
あなたは私どもよりも自分の疑問に答えました。私たちは野生の推測をしているだけです。 –