ORMはパフォーマンス上の問題を引き起こす場合がありますが、一般的にはすべてのパフォーマンスに関する問題を非難することはおそらく正確ではないと主張します。
私はORMの使用のための2つの主要なパフォーマンスの落とし穴を参照してください。
1)ほとんどの場合、バック
あまりにも多くのデータを取得、あなたが戻ってあなたが本当に必要以上のデータを取得しています。通常、これは大きな問題ではありませんが、モデルが不適切にマッピングされていると、小さな断片が1つだけ必要なときに大きなグラフのグラフが表示されることがあります。
2)時々のORMは、特定の状況に最適なSQLを生成しませんし、それを変更することは困難または不可能であるORM
によって生成されたSQLチューニングすることができないという。私は過去に、SQLチューニングによって大幅なパフォーマンス向上が達成される状況でORMをバイパスするのが比較的早いということでこれを緩和しました。あなたの他のポイントへ
- オームズは、それが困難なキャッシングを利用するために作ること - これは実際には、多くのORMのためを獲得(時には大幅に)パフォーマンスの源である、ほとんどのORMは、通常の内蔵キャッシュのいくつかの並べ替えを含まれているため。たとえば、Hibernateは第1レベルのキャッシュ(セッション/永続コンテキスト)を持ち、第2レベルのキャッシュも使用するように簡単に設定できます。
私はEFとLinqをSQLと手作業でコーディングしたADO.NETオブジェクト/ロジックを過去に使用することの長所と短所を研究しなければなりませんでした。結局のところ、私たちはあなたが言及した理由のために手書きのADO.NETに行かなければなりませんでした。 –