問題タブ [eager-loading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
468 参照

nhibernate - NHibernateで積極的な読み込みを使用する必要があるのはいつですか?使い方は?

NHibernateで積極的な読み込みを使用する必要があるのはいつですか?使い方は?

0 投票する
1 に答える
3670 参照

nhibernate - 子コレクションエンティティをアソシエーションに参加させながら、子コレクションを熱心にフェッチする方法

次の架空のレイアウトを想定

名前がXのディーラーを取得し、Carsコレクションも取得するというクエリを作成しますが、そうする場合はメーカーに対して結合を使用します。これにはICriteriaの使用が必要になると思います。こんなことを考えています。

しかし、結果のクエリは、私が期待していたようには見えません。DetachedCriteriaがどこかで必要になるかもしれないと思い始めていますが、よくわかりません。

考え?

0 投票する
2 に答える
2208 参照

ruby-on-rails - rails named_scope は熱心な読み込みを無視します

2 つのモデル (Rails 2.3.8):

  • ユーザー; ユーザー名と無効なプロパティ; ユーザー has_one :プロファイル
  • プロフィール; full_name と隠しプロパティ

disabled=1 および hidden=1 のユーザー プロファイルを排除する named_scope を作成しようとしています。User モデルは通常、Profile モデルと組み合わせて使用​​されるため、Profile モデル (:include => :profile) をeager-loadしようとします。

User モデルに「visible」という名前の named_scope を作成しました。

クエリで named_scope を使用すると、eager-loading 命令が無視されることに気付きました。

バリエーション 1 - ユーザー モデルのみ:

バリエーション 2 - ビューでプロファイル モデルを使用します。遅延ロード プロファイル モデル

バリエーション 3 - 熱心なロード プロファイル モデル

バリエーション 4 - 熱心な読み込み命令を含む name_scope を使用する

バリエーション 4 は正しい数のレコードを返しますが、eager-loading 命令を無視しているようにも見えます。

これはクロスモデルの名前付きスコープの問題ですか? おそらく私はそれを正しく使用していません。

この種の状況は、Rails 3 でより適切に処理されますか?

0 投票する
4 に答える
27194 参照

nhibernate - Fluent NHibernate / Nhibernate&Automappingを使用した積極的な読み込み

ノードと呼ばれる複雑なオブジェクトをロードする必要があります...それほど複雑ではありません...次のようになります:-

ノードには、プロパティを持つ1対多を持つEntityTypeへの参照があり、プロパティは、PorpertyListValueを持つ1対多です。

私がやろうとしているのは、Nodeオブジェクトにすべての子オブジェクトを一度にロードすることです。遅延読み込みはありません。その理由は、データベースに数千のノードオブジェクトがあり、WCFサービスを使用してそれらをネットワーク経由で送信する必要があるためです。クラスSQL N+1の問題が発生しました。私は自動マッピングでFluentNhibernateを使用していますが、NHibernate Profilerは、FetchMode.Eagerを使用してオブジェクト全体を一度にロードすることを提案しました。私は次のqyueryを使用しています

またはNHibernateLINQを使用する

上記のクエリのいずれかを実行すると、両方とも、すべての左側の外部結合を含む1つの同じ単一のクエリを生成します。これが必要です。ただし、何らかの理由で、クエリから返されるIListがオブジェクトにプロパティをロードされていません。実際、返されるノード数はクエリの行数と等しいため、ノードオブジェクトが繰り返されます。さらに、各ノード内のプロパティが繰り返され、リスト値も繰り返されます。

したがって、上記のクエリを変更して、プロパティとリスト値を含むすべての一意のノードを返す方法を知りたいと思います。

0 投票する
1 に答える
17195 参照

c# - Linq to Entities - Include() を使用した熱心な読み込み

私はこの非常に基本的なテーブル構造を持っています:

dbo.tblCategory
dbo.tblQuestion (tblCategory との多対 1 の関係)
dbo.tblAnswer (tblQuestion との多対 1 の関係)

基本的に、私がやろうとしているのは、カテゴリをロードするときに、すべての質問とすべての回答もロードしたいということです。

これで、次のコードを使用してこれを行うことができました。

ただし、私はこれに完全に夢中になっているわけではありません。モデルで関係名が変更された場合。プロジェクトのビルド時にエラーが発生することはありません。理想的には、ラムダ式を使用したいと思います。このようなもの:

さて、上記のスニペットで; Answers テーブルにドリルダウンする方法に行き詰まっています。このラムダ式に何を使用できるかについて何か考えはありますか?

0 投票する
1 に答える
699 参照

nhibernate - NHibernate Eager Loading Collections + ページング

これは、熱心に読み込まれたコレクションで返そうとしている私のエンティティの例です。

ミックス -> トラック (コレクション) -> タグ (コレクション)

熱心にロードされたトラックとタグを含むミックスのページ化されたリストを返す必要があります。ページングなしでは、Future<>() 関数を使用してトラックとタグに対して複数のクエリを実行することで比較的簡単です。

このデータはページングする必要があるため...データを表示するときにNHibernateがN + 1の問題を起こさないようにするには、どうすればすべてのデータを元に戻すことができますか?

ポール

0 投票する
1 に答える
778 参照

ruby-on-rails - ポリモーフィック アソシエーションの熱心な読み込み

これがモデル/データベースセクションだけでなくパフォーマンスセクションにも当てはまるかどうかわからないので、ここに行きます....

3つのモデルがあるとしましょう:

と ...

ここで、すべての映画のすべての興味のリストが必要で、それらの Movies オブジェクトが作成された日付 (それらが何歳か) も表示したい場合は、resource_type 属性のルックアップを使用し、次に @some_interest.resource を使用します。 .created_at.

これの問題は、100 件の映画に興味がある場合、101 件のクエリが返されることです。だから線形劣化。クエリ呼び出しで :include => [:resource] を使用しようとしましたが、ポリモーフィック アソシエーションで include を使用できないと表示されます。

この深刻な劣化を回避するために、この問題を積極的にロードまたは最適化するにはどうすればよいですか??

どんな助けでも大歓迎です!!

0 投票する
2 に答える
174 参照

nhibernate - NHibernateEagerLoading-多くの無関係なデータ

私のメンバーは、X個のウィジェットを使用してプロファイルページをカスタマイズすることができます。各ウィジェットには、音楽のリスト、フォローしている人のリストなど、さまざまなデータが表示されます。

いくつかのウィジェットは次のとおりです。-アップロードしたメディアのリスト-フォローしている人のリスト-フォローしている人のリスト-HTML/テキストウィジェット-メディア統計(ダウンロード数など)-他のメンバーがコメントを残すためのコメントウィジェット

一部のウィジェットは、何百もの結果が存在する可能性があるため、返されたデータをページングする必要があります。

現時点では最適化を行っていないため、すべてのデータを返すために多くのDB作業を行っています...データを取得するための最も効率的な方法は何ですか...ウィジェットごとに1つのDB呼び出しが受け入れられますか?1ページあたり約5〜20個のウィジェットが存在する可能性があります。

私の状況についてさらに情報が必要な場合は、お気軽にお問い合わせください。

ポール

0 投票する
1 に答える
391 参照

nhibernate - NHibernateクエリ-多対多-積極的な読み込み(twitterスタイルのフォロワー/フォロー中)

クエリの1つを最適化することに行き詰まりました...これが私のシナリオです...

Twitterに似たドメインがあり、ユーザーは他のユーザーをフォローできます。これが私のユーザーモデルのサンプルです:

ここで、ユーザー「XYZ」をフォローしているユーザーのページ結果を返す必要がありますが、現在ログインしているユーザーが返されたフォロワーをフォローしているかどうかを判断するために必要な熱心なロードデータも必要です。

だからどういうわけか私はこれを熱心にロードする必要があります:(おそらく現在のユーザーuser->followers->followingのデータをフェッチするためのフィルターを使用して)following

これは1つのクエリで実行することも可能ですか、それとも2つの個別のクエリを実行する必要がありますか?フォロワーのページデータを返す1つのクエリ、次に返されたIDを持つIN句を指定する別のクエリで、ログインしているユーザーの次のデータをフェッチします。

ポール

0 投票する
1 に答える
1815 参照

sqlalchemy - SQLAlchemyはコレクションのみをロードし、eagerloading時にbackrefはロードしません

たとえば(eagerload / joinedloadは同じことをします):

セッションを閉じる前に次のループを追加すると機能します(DBにヒットしません)。

これはかなりばかげています。出力SQLに結合を追加せずにリレーションの両側をロードするように、元のクエリを変更する方法はありますか?

関連する場合は更新します。これがマッピングです