- ベストアンサー
セッション格納可能なオブジェクト
ASP.NET2005でデータを格納したいのですが、お客さんの要求が1万件のデータをセッションに格納したいとのことです。ハード的にはかなりのメモリを積んでいます。 Session("項目名") = "文字列"というようにデータを格納する方法はできたのですが、他に格納できるオブジェクトにはどんなものがあるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お世話になります。 基本は ANo.1 さんと同じです。 格納されたいとおっしゃっているのは、 多分データベースの値とかなんでしょうけど、 セッションに 1 万件もの巨大なデータ(項目が何個だろうと) を積むなんて常識的にありえません。 物理メモリをたくさん積んでるから大丈夫なんて事は まずありません。 そういう設計思想で作ったシステムは破たんします。 1 セッションあたり 1 万件で、100 人の人がアクセスしたら? 利用者がもっと増えて 1000 人、2000 人になったら? データも ずっと 1 万件である保証はないでしょう? もっと先々に拡張性のある設計を心掛けましょう。 たとえば、1 万件の情報はデータベースに持っておいて、 必要な時に必要なだけ取りに行くほうが 複数人で常に 1 万件ずつサーバーのメモリを占拠するよりずっといいです。 ちなみにセッションに格納できるオブジェクトはシリアライズ可能なオブジェクトです。 セッションに入れるのは、どうしても必要かつ最低限のものにしましょう。一般的にはそういった設計をしていますよ。
その他の回答 (1)
- tsukachan
- ベストアンサー率42% (202/470)
1万件のデータをセッションにという意味がちょっと分からないので補足要求っす。 1万セッションを想定するってこと?それとも1セッションで1万個のセッションオブジェクトを使うって事? セッションを何のために使うのかを良く理解した上でプログラム設計しないとあかんよ。 セッションオブジェクトなんてセッションを特定するために1個だけあれば十分だし、でかいデータ保存するとサーバーに負荷掛かりすぎるよ? 参考URLを見てセッションオブジェクトについてもうちょい勉強した方がいいかな http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp06/entwebapp06_01.html