私はNHibernateの新人です誰も私を説明できますどのように対処するデータの大きなセット?NHibernateの情報
データが100GBあれば、Nhibernateから取得したい、私はそれが可能であると思う。 私がISessionを使用すると、メモリに格納されますか?メモリに格納されている場合、データベースに変更が行われた場合はどうなりますか?
これらの疑問は私に少し混乱を招く可能性があります。事前
私はNHibernateの新人です誰も私を説明できますどのように対処するデータの大きなセット?NHibernateの情報
データが100GBあれば、Nhibernateから取得したい、私はそれが可能であると思う。 私がISessionを使用すると、メモリに格納されますか?メモリに格納されている場合、データベースに変更が行われた場合はどうなりますか?
これらの疑問は私に少し混乱を招く可能性があります。事前
で
おかげでNHibernateのセッションのは、パターンのみ「作業単位」を実装していないが、それはまた、「アイデンティティ・マップ」パターンを実装します。
つまり、セッションで初めてデータストアからエンティティを取得すると、NHibernateはそのエンティティをDBから取得します。
同じセッションをで再度取得する場合、NHibernateはDBからフェッチしませんが、すでにフェッチした参照を返します。 Offcourse、これは、同じエンティティを2回目にフェッチするときに同じSessionインスタンスを使用する場合にのみ当てはまります。
エンティティに変更を加えている間に、他の誰かが同じエンティティを変更してDBに変更を残した場合、NHIbernateがそのトラックを保持することは期待できないため、変更は表示されませんデータベース全体をチェックし、他の誰かがあなたが記憶しているエンティティを変更した(そして永続化した)かどうかをチェックします。
したがって、あなたのセッションは短命であるべきです。誰かの変更を上書きしないために、NHibernateで楽観的なロックを簡単に実装することができます。
しかし、私は不思議です...あなたはNHibernateがあなたの問題の良い解決策であると確信していますか?どのようなアプリケーションをビルドするつもりですか?
あなたのお返事ありがとうございます。私のアプリケーションは大量のデータを処理することです。大量のデータを一度に取得し、それらのデータをウィンドウやWebフォームにプレゼンテーションします。この目的でNHibernateを使用することをお勧めしますか? – user98454
あなたのデータはどうしていますか?主にビジネスロジックがほとんどないCRUD操作ですか? このデータはどのようにモデル化されていますか?あなたはNHibernateでそれを行うことができますが、場合によってはNHibernateを使わない方が良いかもしれません。 –
私はこれらのデータを主にCRUD操作のみに使用します.nhibernateを使用しないいくつかのケースについて教えてください。 ありがとう – user98454
あなたはデータで何をしたいのか分かりません。私はあなたに良い答えを与えることはできません。あなたが100GBについて話しているとき、私はあなたがデータを別のデータベースまたは記憶媒体に転送したいと思います。なぜETLツールを見ないのですか?
私はあなたの状況を理解していません。 「大量のデータ」とはどういう意味ですか?どのように構造化されていますか?これらは非常に多くの行ですか、それとも単一のBLOBですか?データベースモデルはすでに定義されていますか?オブジェクトモデルはすでに定義されていますか?あなたが解決しなければならない実際の問題は何ですか? –