問題タブ [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.
eager-loading - globalize2翻訳の積極的な読み込み
私は2つのモデルを持っています-IssueとAnswers(問題には多くの答えがあります)そして両方ともglobalize2で翻訳されています。問題をロードしようとするたびに、
各回答の翻訳が読み込まれます(回答ごとに1つのSQLクエリ)。
どうすれば最適化できますか?
linq - LINQ to SQLを使用して兄弟データを熱心にロードするにはどうすればよいですか?
目標は、匿名型を使用せずにLINQtoSQLを使用してSQLServerに発行するクエリを最小限にすることです。メソッドの戻りタイプはIList<Child1>である必要があります。関係は次のとおりです。
親>子1は1対多の関係です
Child1> Grandchild1は1対nの関係です(nはゼロから無限大です)
親>子2は1対nの関係です(nはゼロから無限大です)
親、子1、および孫1のデータを熱心にロードして、SQLServerへのクエリを1つ実行できます。
ロードオプションを使用したこのクエリは、兄弟データ(Child2)を除くすべてのデータを熱心にロードします。
兄弟データもロードする必要があります。私が試したアプローチの1つは、クエリを2つのLINQ to SQLクエリに分割し、結果セットをマージすることです(きれいではありません)が、兄弟データにアクセスすると、とにかく遅延ロードされます。
兄弟ロードオプションを追加すると、Grandchild1およびChild2レコードごとにSQL Serverにクエリが発行されます(これはまさに私が避けようとしていることです)。
また、データを積極的にロードすることを期待して、すべてのデータを結合するLINQ to SQLクエリを記述しましたが、Child2またはGrandchild1のLINQ to SQL EntitySetにアクセスすると、データが遅延ロードされます。
IList <Child1>を返す理由は、ビジネスオブジェクトをハイドレイトするためです。
私の考えは私がどちらかであるということです:
- この問題に間違った方法でアプローチします。
- ストアドプロシージャを呼び出すオプションはありますか?
- 私の組織はLINQtoSQLをORMとして使用すべきではありませんか?
どんな助けでも大歓迎です。
ありがとうございました、
-スコット
ruby-on-rails - Arel (Rails 3) との Eager-loading アソシエーション カウント
簡単なタスク: 記事に多くのコメントがある場合、記事の長いリストに各記事のコメント数を表示できます。このデータを Arel でプリロードする方法を考えています。
READMEファイルの「Complex Aggregations」セクションでは、そのような状況について説明しているようですが、サンプル コードが正確に提供されているわけではなく、結合された 1 つのクエリではなく 2 つのクエリで実行する方法も提供されていません。パフォーマンス。
以下を考えると:
それぞれのコメント数を設定した記事をプリロードするにはどうすればよいですか?
entity-framework - n層アプリケーションのEntityFramework-遅延読み込みと熱心な読み込みパターン
この質問は私が解決策を見つけようとしている1年以来のように私を眠らせませんが...それでも私の心には何も起こりませんでした。これは非常に一般的な問題だと思うので、おそらくあなたは私を助けることができます。
私はn層のアプリケーションを持っています:プレゼンテーション層、ビジネスロジック層、モデル層。簡単にするために、私のアプリケーションのプレゼンテーション層に、ユーザーが顧客を検索できるフォームが含まれているとします。これで、ユーザーはUIを介してフィルターに入力し、ボタンをクリックします。何かが起こり、リクエストはプレゼンテーション層に到着し、のようなメソッドになりCustomerSearch(CustomerFilter myFilter)
ます。このビジネスロジックレイヤーにより、シンプルになりました。モデルにクエリを作成し、結果を取得します。
さて、質問:データのロードの問題にどのように直面しますか?つまり、ビジネスロジック層は、その特定のメソッドがそのフォームだけで呼び出されることを認識していません。したがって、リクエストフォームに必要なのはCustomerオブジェクトだけなのか、LinkedOrderエンティティを持つCustomerオブジェクトだけなのかはわかりません。
私はもっとよく説明しようとしています。私たちのフォームは、名前で検索している顧客をリストしたいだけです。それは注文とは何の関係もありません。したがって、ビジネスロジッククエリは次のようになります。
現在、これは正しく機能しています。2日後、上司から、他の顧客と同じように顧客を検索できるフォームを追加するように求められました。各顧客が作成した注文の総数を表示する必要があります。次に、そのクエリを再利用して、注文を添付(含む)してそれを取り戻すロジックを追加したいと思います。
このリクエストをどのように処理しますか?
これが私が今から持っていた最高の(私が思う)アイデアです。ご意見をお聞かせください。BLLのCustomerSearchメソッドはクエリを直接作成しませんが、次のようなObjectQueryを構成するプライベート拡張メソッドを通過します。
と
しかし、それは複雑すぎるように見えるので、これは私を納得させません。
ありがとう、マルコ
ruby-on-rails - このRailsアソシエーションに熱心に負荷をかける
ユーザーのリストがあるrailsアプリがあります。私はユーザー間でさまざまな関係を持っています。たとえば、一緒に仕事をしている、友達、優先しているなどです。ユーザーを一覧表示するとき、現在のユーザーが特定のユーザーを友達に追加できるかどうかを判断する必要があります。
can_request_friendship_with(user)は次のようになります。
私の問題は、これは私の場合、ユーザーごとに4つのクエリを意味することです。リスト10のユーザーは40のクエリを意味します。どういうわけかこれを熱心にロードできますか?
ruby-on-rails - Rails - 関連付けられたレコードの数を熱心にロードしますが、レコード自体はロードしません
レンダリングに時間がかかるページがあります。時間の半分 (3 秒) は、熱心にロードされたアソシエーションの束を持つ .find 呼び出しに費やされます。私が実際に必要とするのは、テーブルに表示するために、それぞれの場合に関連付けられたレコードの数だけです。実際のレコード自体は必要ありません。カウントを熱心にロードする方法はありますか? 簡単な例を次に示します。
私のテーブルでは、各行 (つまり、各科目) について、科目フィールドの値と、各科目に関連する質問の数を表示するだけです。これらの要件に合わせて上記の検索呼び出しを最適化できますか?
グループフィールドを使用することを考えましたが、完全な呼び出しにはいくつかの異なる関連付けが含まれており、いくつかの二次関連付けが含まれているため、group by は機能しないと思います。
この場合の :tags は、タグ付けによる二次的な関連付けです。何が起こっているのかはっきりしない場合に備えて、ここに私の関連付けを示します。
アドバイスに感謝します-最大
linq-to-sql - LINQ-to-SQLはオブジェクトグラフ全体を熱心にロードします
LINQ-to-SQLオブジェクトグラフ全体を特定のポイントから下にロードし、すべての子コレクションとその中のオブジェクトなどをロードする必要があります。これは、オブジェクト構造とデータをXMLにダンプするために使用されます。
データを「整形」するためにハードコードされた大量のDataLoadOptionsのセットを生成せずにこれを行う方法はありますか?
nhibernate - nHibernate - 子リストがすでに入力されているリストを熱心にフェッチする
私はいくつかのオブジェクトを持っています:
これらのクラスは nHibernate を使用して MS Sql にマップされます - クラスごとに db にテーブルがあります...
アカウントのすべての子コレクションが最も効率的な方法で取り込まれた List を返すメソッド GetAccounts(int PersonID) をリポジトリに作成したいと考えています。誰かがこれを行う方法についての指針を教えてもらえますか-リストをマッピングでサブセレクトとして設定したくありません...
ありがとう。
ruby-on-rails - Railsの熱心な読み込みを理解するのを手伝ってください
アクティブ レコードでの熱心な読み込みの仕組みについては、少し混乱しています。Book
モデルに多数のモデルがありPages
、次のクエリを使用して本をフェッチするとします。
今、これは私が混乱しているところです。私の理解では、それ@book.pages
は既に読み込まれており、別のクエリを実行しません。しかし、特定のページを見つけたいとしたら、どうすればよいでしょうか?
最初の例が別のクエリを実行するため、熱心な読み込みが無意味になる、またはアクティブ レコードが別のクエリを実行する必要がないことを知るのに十分賢いと考えるのは正しいですか?
また、私の 2 番目の質問ですが、場合によっては熱心な読み込みがデータベースに集中し、複数の小さなクエリが 1 つの大きなクエリよりも効率的であるという議論はありますか?
ご意見ありがとうございます。
java - JPA2を使用してHibernateにOneToManyを積極的にロードする
私はとエンティティ@OneToMany
の間に単純なものがあります:Person
Pet
Person
関連するすべてのをロードしたいと思いますPet
。だから私はこれを思いついた(テストクラスの中で):
ただし、SQLログをオンにすると、3つのクエリが実行されることがわかります(DBに2人のユーザーがいます)。
任意のヒント?
ありがとうGergo